Repository: bezhanSalleh/filament-exceptions Branch: main Commit: 272549885c79 Files: 93 Total size: 1.3 MB Directory structure: gitextract_9aritsul/ ├── .blade.format.json ├── .editorconfig ├── .gitattributes ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ └── config.yml │ ├── dependabot.yml │ └── workflows/ │ ├── dependabot-auto-merge.yml │ ├── fix-php-code-style-issues.yml │ ├── run-tests.yml │ └── update-changelog.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── bootstrap/ │ └── app.php ├── composer.json ├── database/ │ ├── factories/ │ │ └── ModelFactory.php │ └── migrations/ │ └── create_filament_exceptions_table.php.stub ├── package.json ├── phpstan.neon.dist ├── phpunit.xml.dist ├── phpunit.xml.dist.bak ├── pint.json ├── rector.php ├── resources/ │ ├── css/ │ │ └── styles.css │ ├── dist/ │ │ ├── scripts.js │ │ └── styles.css │ ├── js/ │ │ └── scripts.js │ ├── lang/ │ │ ├── cs/ │ │ │ └── filament-exceptions.php │ │ ├── en/ │ │ │ └── filament-exceptions.php │ │ ├── es/ │ │ │ └── filament-exceptions.php │ │ └── sk/ │ │ └── filament-exceptions.php │ └── views/ │ ├── .gitkeep │ ├── components/ │ │ ├── badge.blade.php │ │ ├── empty-state.blade.php │ │ ├── file-with-line.blade.php │ │ ├── formatted-source.blade.php │ │ ├── frame-code.blade.php │ │ ├── frame.blade.php │ │ ├── header.blade.php │ │ ├── http-method.blade.php │ │ ├── icons/ │ │ │ ├── alert.blade.php │ │ │ ├── check.blade.php │ │ │ ├── chevron-left.blade.php │ │ │ ├── chevron-right.blade.php │ │ │ ├── chevrons-down-up.blade.php │ │ │ ├── chevrons-left.blade.php │ │ │ ├── chevrons-right.blade.php │ │ │ ├── chevrons-up-down.blade.php │ │ │ ├── copy.blade.php │ │ │ ├── database.blade.php │ │ │ ├── folder-open.blade.php │ │ │ ├── folder.blade.php │ │ │ ├── globe.blade.php │ │ │ ├── info.blade.php │ │ │ └── laravel-ascii.blade.php │ │ ├── query.blade.php │ │ ├── request-body.blade.php │ │ ├── request-header.blade.php │ │ ├── request-url.blade.php │ │ ├── routing-parameter.blade.php │ │ ├── routing.blade.php │ │ ├── section-container.blade.php │ │ ├── separator.blade.php │ │ ├── syntax-highlight.blade.php │ │ ├── topbar.blade.php │ │ ├── trace.blade.php │ │ ├── vendor-frame.blade.php │ │ └── vendor-frames.blade.php │ └── view-exception.blade.php ├── src/ │ ├── Commands/ │ │ └── InstallCommand.php │ ├── Concerns/ │ │ ├── HasLabels.php │ │ ├── HasModelPruneInterval.php │ │ ├── HasNavigation.php │ │ └── HasTenantScope.php │ ├── Facades/ │ │ └── FilamentExceptions.php │ ├── FilamentExceptions.php │ ├── FilamentExceptionsPlugin.php │ ├── FilamentExceptionsServiceProvider.php │ ├── Models/ │ │ └── Exception.php │ ├── Resources/ │ │ ├── ExceptionResource/ │ │ │ └── Pages/ │ │ │ ├── ListExceptions.php │ │ │ └── ViewException.php │ │ └── ExceptionResource.php │ ├── StoredException.php │ └── StoredFrame.php ├── tests/ │ ├── AdminPanelProvider.php │ ├── ArchTest.php │ ├── ExampleTest.php │ ├── Pest.php │ └── TestCase.php └── vite.config.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .blade.format.json ================================================ { "useLaravelPint": true, "pintCacheEnabled": false } ================================================ FILE: .editorconfig ================================================ root = true [*] charset = utf-8 indent_size = 4 indent_style = space end_of_line = lf insert_final_newline = false trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false [*.{yml,yaml}] indent_size = 2 ================================================ FILE: .gitattributes ================================================ # Path-based git attributes # https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html # Ignore all test and documentation with "export-ignore". /.github export-ignore /.gitattributes export-ignore /.gitignore export-ignore /phpunit.xml.dist export-ignore /art export-ignore /docs export-ignore /tests export-ignore /.editorconfig export-ignore /.php_cs.dist.php export-ignore /psalm.xml export-ignore /psalm.xml.dist export-ignore /testbench.yaml export-ignore /UPGRADING.md export-ignore /phpstan.neon.dist export-ignore /phpstan-baseline.neon export-ignore ================================================ FILE: .github/FUNDING.yml ================================================ github: bezhanSalleh ================================================ FILE: .github/ISSUE_TEMPLATE/config.yml ================================================ blank_issues_enabled: false contact_links: - name: Ask a question url: https://github.com/bezhanSalleh/filament-exceptions/discussions/new?category=q-a about: Ask the community for help - name: Request a feature url: https://github.com/bezhanSalleh/filament-exceptions/discussions/new?category=ideas about: Share ideas for new features - name: Report a security issue url: https://github.com/bezhanSalleh/filament-exceptions/security/policy about: Learn how to notify us for sensitive bugs - name: Report a bug url: https://github.com/bezhanSalleh/filament-exceptions/issues/new about: Report a reproducable bug ================================================ FILE: .github/dependabot.yml ================================================ # Please see the documentation for all configuration options: # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates version: 2 updates: - package-ecosystem: "github-actions" directory: "/" schedule: interval: "weekly" labels: - "dependencies" ================================================ FILE: .github/workflows/dependabot-auto-merge.yml ================================================ name: dependabot-auto-merge on: pull_request_target permissions: pull-requests: write contents: write jobs: dependabot: runs-on: ubuntu-latest if: ${{ github.actor == 'dependabot[bot]' }} steps: - name: Dependabot metadata id: metadata uses: dependabot/fetch-metadata@v3.1.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" - name: Auto-merge Dependabot PRs for semver-minor updates if: ${{steps.metadata.outputs.update-type == 'version-update:semver-minor'}} run: gh pr merge --auto --merge "$PR_URL" env: PR_URL: ${{github.event.pull_request.html_url}} GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - name: Auto-merge Dependabot PRs for semver-patch updates if: ${{steps.metadata.outputs.update-type == 'version-update:semver-patch'}} run: gh pr merge --auto --merge "$PR_URL" env: PR_URL: ${{github.event.pull_request.html_url}} GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} ================================================ FILE: .github/workflows/fix-php-code-style-issues.yml ================================================ name: Fix PHP code style issues on: [push] jobs: php-code-styling: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v6 with: ref: ${{ github.head_ref }} - name: Fix PHP code style issues uses: aglipanci/laravel-pint-action@2.6 - name: Commit changes uses: stefanzweifel/git-auto-commit-action@v7 with: commit_message: Fix styling ================================================ FILE: .github/workflows/run-tests.yml ================================================ name: run-tests on: push: branches: [main] pull_request: branches: [main] jobs: test: runs-on: ${{ matrix.os }} strategy: fail-fast: true matrix: os: [ubuntu-latest, windows-latest] php: [8.3] laravel: [13.*] stability: [prefer-lowest, prefer-stable] include: - laravel: 13.* testbench: 11.* name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }} steps: - name: Checkout code uses: actions/checkout@v6 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo coverage: none - name: Setup problem matchers run: | echo "::add-matcher::${{ runner.tool_cache }}/php.json" echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - name: Install dependencies run: | composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update composer update --${{ matrix.stability }} --prefer-dist --no-interaction - name: Execute tests run: vendor/bin/pest --ci --parallel ================================================ FILE: .github/workflows/update-changelog.yml ================================================ name: "Update Changelog" on: release: types: [released] jobs: update: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v6 with: ref: main - name: Update Changelog uses: stefanzweifel/changelog-updater-action@v1 with: latest-version: ${{ github.event.release.name }} release-notes: ${{ github.event.release.body }} - name: Commit updated CHANGELOG uses: stefanzweifel/git-auto-commit-action@v7 with: branch: main commit_message: Update CHANGELOG file_pattern: CHANGELOG.md ================================================ FILE: .gitignore ================================================ .idea .phpunit.result.cache build composer.lock coverage docs phpunit.xml phpstan.neon testbench.yaml vendor node_modules package-lock.json .phpunit.cache/ ================================================ FILE: .prettierignore ================================================ *.md **/.git **/.github **/dist **/vendor **/node_modules composer.lock ================================================ FILE: .prettierrc ================================================ { "semi": true, "singleQuote": true, "singleAttributePerLine": false, "htmlWhitespaceSensitivity": "css", "printWidth": 150, "plugins": ["prettier-plugin-organize-imports", "prettier-plugin-tailwindcss", "prettier-plugin-blade"], "tailwindFunctions": ["clsx", "cn"], "tabWidth": 4, "overrides": [ { "files": "*.blade.php", "options": { "tabWidth": 4 } } ] } ================================================ FILE: CHANGELOG.md ================================================ # Changelog All notable changes to `filament-exceptions` will be documented in this file. ## 4.2.0 - 2026-03-29 ### What's Changed * Adds Laravel 13 Support by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/85 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/4.1.0...4.2.0 ## 4.1.0 - 2026-01-19 ### What's Changed * Added support for Filament 5.x * Bump stefanzweifel/git-auto-commit-action from 6 to 7 by @dependabot[bot] in https://github.com/bezhanSalleh/filament-exceptions/pull/81 * Bump actions/checkout from 5 to 6 by @dependabot[bot] in https://github.com/bezhanSalleh/filament-exceptions/pull/82 * Bump dependabot/fetch-metadata from 2.4.0 to 2.5.0 by @dependabot[bot] in https://github.com/bezhanSalleh/filament-exceptions/pull/83 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/4.0.0...4.1.0 ## 4.0.0 - 2025-12-25 ### What's Changed * Support for Filament 4.x * Support for Laravel 11.x * Replaced custom implementation with Laravel's built-in Exception rendering features. **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/3.0.0...4.0.0 ## 3.0.0 - 2025-05-13 ### What's Changed * 3.x Rewrite by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/49 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/2.1.2...3.0.0 ## 2.1.2 - 2024-11-06 ### What's Changed * Adding isScopedToTenant at ExceptionResource by @LingMyat in https://github.com/bezhanSalleh/filament-exceptions/pull/47 * Add Custom Model Support & Fix Iterator Errors by @Fludem in https://github.com/bezhanSalleh/filament-exceptions/pull/46 * Bump aglipanci/laravel-pint-action from 2.3.1 to 2.4 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/53 * Slovak translation by @hamrak in https://github.com/bezhanSalleh/filament-exceptions/pull/55 * Bump dependabot/fetch-metadata from 1.6.0 to 2.2.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/59 ### New Contributors * @LingMyat made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/47 * @Fludem made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/46 * @hamrak made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/55 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/2.0.2...2.1.2 ## 2.1.0 - 2024-01-24 ### What's Changed * Adding isScopedToTenant at ExceptionResource by @LingMyat in https://github.com/bezhanSalleh/filament-exceptions/pull/47 * Add Custom Model Support & Fix Iterator Errors by @Fludem in https://github.com/bezhanSalleh/filament-exceptions/pull/46 ### New Contributors * @LingMyat made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/47 * @Fludem made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/46 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/2.0.2...2.1.0 ## 2.0.2 - 2024-01-09 ### What's Changed * Bump aglipanci/laravel-pint-action from 2.3.0 to 2.3.1 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/43 * use @svg directive to load icons by @iRaziul in https://github.com/bezhanSalleh/filament-exceptions/pull/42 ### New Contributors * @iRaziul made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/42 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/2.0.1...2.0.2 ## 2.0.1 - 2023-10-17 ### What's Changed - Update README.md to include Filament panel plugin registration by @vanhooff in https://github.com/bezhanSalleh/filament-exceptions/pull/37 - Bump actions/checkout from 3 to 4 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/38 - Bump stefanzweifel/git-auto-commit-action from 4 to 5 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/39 ### New Contributors - @vanhooff made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/37 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/2.0.0...2.0.1 ## 2.0.0 - 2023-08-01 ### What's Changed - Filament v3 support - Bump aglipanci/laravel-pint-action from 2.1.0 to 2.2.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/29 - Bump dependabot/fetch-metadata from 1.3.6 to 1.4.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/31 - Bump aglipanci/laravel-pint-action from 2.2.0 to 2.3.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/33 - Bump dependabot/fetch-metadata from 1.4.0 to 1.5.1 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/34 - Bump dependabot/fetch-metadata from 1.5.1 to 1.6.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/35 - Fix typo by @martin-ro in https://github.com/bezhanSalleh/filament-exceptions/pull/30 ### New Contributors - @martin-ro made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/30 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.1.2...2.0.0 ## 1.1.2 - 2023-03-19 ### What's Changed - Fix dependency issue in composer.json by @patrickcurl in https://github.com/bezhanSalleh/filament-exceptions/pull/28 ### New Contributors - @patrickcurl made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/28 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.1.1...1.1.2 ## 1.1.1 - 2023-03-05 **What's Changed**: - fixed script loading issue **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.1.0...1.1.1 ## 1.1.0 - 2023-03-05 ### What's Changed - feature: Exceptions are now Mass Prunable by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/27 - Fix/laravel ignition dep by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/25 - Fix/message column data type by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/26 - Bump dependabot/fetch-metadata from 1.3.5 to 1.3.6 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/23 - Bump aglipanci/laravel-pint-action from 1.0.0 to 2.1.0 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/20 - refactor config/translation, fix some minor stuff by @josefbehr in https://github.com/bezhanSalleh/filament-exceptions/pull/24 ### New Contributors - @josefbehr made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/24 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.0.3...1.1.0 ## 1.0.3 - 2022-11-16 ### What's Changed - Update code-preview.blade.php by @damms005 in https://github.com/bezhanSalleh/filament-exceptions/pull/17 - Update view-exception.blade.php by @damms005 in https://github.com/bezhanSalleh/filament-exceptions/pull/15 ### New Contributors - @damms005 made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/17 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.0.2...1.0.3 ## 1.0.2 - 2022-11-12 ### What's Changed - Bump dependabot/fetch-metadata from 1.3.3 to 1.3.4 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/10 - Bump dependabot/fetch-metadata from 1.3.4 to 1.3.5 by @dependabot in https://github.com/bezhanSalleh/filament-exceptions/pull/12 - fixed viewing by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/13 - fixed migrations publishing issue ### New Contributors - @dependabot made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/10 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.0.1...1.0.2 ## 1.0.1 - 2022-10-03 ### What's Changed - `feature:`**`Localizations`** by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/9 - - Added all possible localizations - - - - - - - added `config` file - - - - - - - updated `exceptions:install` command - - - - - - - Add ability to customize navigation item from config file by @aminetiyal in https://github.com/bezhanSalleh/filament-exceptions/pull/4 - Lang en by @MarJose123 in https://github.com/bezhanSalleh/filament-exceptions/pull/7 ### New Contributors - @aminetiyal made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/4 - @MarJose123 made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/7 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/1.0.0...1.0.1 ## 1.0.0 - 2022-09-20 ### What's Changed - `feature:`**Queries Tab** by @bezhanSalleh in https://github.com/bezhanSalleh/filament-exceptions/pull/5 ### New Contributors - @bezhanSalleh made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/5 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/0.0.6...1.0.0 ## 0.0.6 - 2022-09-08 **What's New - PHP 8.0 Support **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/0.0.5...0.0.6 ## 0.0.5 - 2022-09-07 ### What's Changed - fix readme by @shuvroroy in https://github.com/bezhanSalleh/filament-exceptions/pull/1 - Update README.md by @pxlrbt in https://github.com/bezhanSalleh/filament-exceptions/pull/2 - Little typo by @ralphjsmit in https://github.com/bezhanSalleh/filament-exceptions/pull/3 ### New Contributors - @shuvroroy made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/1 - @pxlrbt made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/2 - @ralphjsmit made their first contribution in https://github.com/bezhanSalleh/filament-exceptions/pull/3 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/0.0.4...0.0.5 ## 0.0.4 - 2022-09-07 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/0.0.3...0.0.4 ## 0.0.3 - 2022-09-07 **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/compare/0.0.2...0.0.3 ## 0.0.2 - 2022-09-05 - assets optimized **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/commits/0.0.2 ## 0.0.1 - 2022-09-04 - initial release - **Full Changelog**: https://github.com/bezhanSalleh/filament-exceptions/commits/0.0.1 ================================================ FILE: LICENSE.md ================================================ The MIT License (MIT) Copyright (c) bezhanSalleh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================ filament-exceptions-art

FILAMENT 4.x FILAMENT 5.x Packagist Tests Passing Code Style Passing Downloads

# Exception Viewer A Simple & Beautiful Exception Viewer for FilamentPHP's Admin Panel > **Version Compatibility:** > - Filament 4.x & 5.x → use version 4.x > - Filament 3.x → use version 3.x > - Filament 2.x → use version 1.x ## Installation 1. You can install the package via composer: ```bash composer require bezhansalleh/filament-exceptions ``` 2. Publish and run the migration via: ```bash php artisan exceptions:install ``` 3. Register the plugin for the Filament Panel ```php public function panel(Panel $panel): Panel { return $panel ->plugins([ \BezhanSalleh\FilamentExceptions\FilamentExceptionsPlugin::make() ]); } ``` That's it! The package automatically registers itself with Laravel's exception handler and starts recording exceptions. > [!IMPORTANT] > The plugin follows Filament's theming rules. So, to use the plugin create a custom theme if you haven't already, and add the following line to your `theme.css` file: ```php @source '../../../../vendor/bezhansalleh/filament-exceptions/resources/views/**/*.blade.php'; ``` Now build your theme using: ```bash npm run build ``` ### Recording Control By default, exceptions are recorded automatically. You can control this behavior in your `AppServiceProvider`'s `boot()` method: #### Stop/Start Recording ```php use BezhanSalleh\FilamentExceptions\FilamentExceptions; public function boot(): void { // Stop recording exceptions FilamentExceptions::stopRecording(); // Resume recording FilamentExceptions::startRecording(); // Check if recording is active FilamentExceptions::isRecording(); } ``` #### Conditional Recording Use `recordUsing()` to define custom logic for when exceptions should be recorded: ```php use BezhanSalleh\FilamentExceptions\FilamentExceptions; public function boot(): void { // Only record in production FilamentExceptions::recordUsing(fn () => app()->isProduction()); // Skip specific exception types FilamentExceptions::recordUsing(function (Throwable $e) { return ! $e instanceof \Illuminate\Validation\ValidationException && ! $e instanceof \Illuminate\Auth\AuthenticationException; }); // Combine multiple conditions FilamentExceptions::recordUsing(function (Throwable $e) { if (! app()->isProduction()) { return false; } // Skip 4xx HTTP exceptions if ($e instanceof \Symfony\Component\HttpKernel\Exception\HttpException && $e->getStatusCode() < 500) { return false; } return true; }); } ``` ### Configuration Options When registering the FilamentExceptions plugin, you can chain various methods to customize its behavior. Here are all available configuration options: #### Navigation ```php FilamentExceptionsPlugin::make() ->navigationBadge(bool | Closure $condition = true) ->navigationBadgeColor(string | array | Closure $color) ->navigationGroup(string | Closure | null $group) ->navigationParentItem(string | Closure | null $item) ->navigationIcon(string | Closure | null $icon) ->activeNavigationIcon(string | Closure | null $icon) ->navigationLabel(string | Closure | null $label) ->navigationSort(int | Closure | null $sort) ->registerNavigation(bool | Closure $shouldRegisterNavigation) ->subNavigationPosition(SubNavigationPosition | Closure $position) ``` #### Labels and Search ```php FilamentExceptionsPlugin::make() ->modelLabel(string | Closure | null $label) ->pluralModelLabel(string | Closure | null $label) ->titleCaseModelLabel(bool | Closure $condition = true) ->globallySearchable(bool | Closure $condition = true) ``` #### Mass Pruning Settings ```php FilamentExceptionsPlugin::make() ->modelPruneInterval(Carbon $interval) ``` > **Note** This requires laravel scheduler to be setup and configured in order to work. You can see how to do that here [Running The Scheduler](https://laravel.com/docs/10.x/scheduling#running-the-scheduler) #### Tenancy Configuration ```php FilamentExceptionsPlugin::make() ->scopeToTenant(bool | Closure $condition = true) ->tenantOwnershipRelationshipName(string | Closure | null $ownershipRelationshipName) ->tenantRelationshipName(string | Closure | null $relationshipName) ``` #### General Configuration ```php FilamentExceptionsPlugin::make() ->cluster(string | Closure | null $cluster) ->slug(string | Closure | null $slug) ``` Example usage: ```php return $panel ->plugins([ FilamentExceptionsPlugin::make() ->navigationLabel('Error Logs') ->navigationIcon('heroicon-o-bug-ant') ->navigationBadge() ->navigationGroup('System') ->modelPruneInterval(now()->subDays(7)) ]); ``` ### Custom Exception Model 1. Extend the base model as follow: ```php configure([ 'enables_package_discoveries' => true, ]) ->createApplication(); $app->register(LivewireServiceProvider::class); $app->register(FilamentServiceProvider::class); $app->register(SupportServiceProvider::class); return $app; ================================================ FILE: composer.json ================================================ { "name": "bezhansalleh/filament-exceptions", "description": "A Simple & Beautiful Pluggable Exception Viewer for FilamentPHP's Admin Panel", "keywords": [ "bezhanSalleh", "laravel", "filament-exceptions", "filament-exception-viewer" ], "homepage": "https://github.com/bezhansalleh/filament-exceptions", "license": "MIT", "authors": [ { "name": "Bezhan Salleh", "email": "bezhan_salleh@yahoo.com", "role": "Developer" } ], "require": { "php": "^8.2|^8.3", "bezhansalleh/filament-plugin-essentials": "^1.0", "filament/filament": "^4.0|^5.0", "illuminate/contracts": "^11.28|^12.0|^13.0", "illuminate/support": "^11.28|^12.0|^13.0", "spatie/laravel-package-tools": "^1.9" }, "require-dev": { "larastan/larastan": "^3.0", "laravel/pint": "^1.0", "nunomaduro/collision": "^8.0", "orchestra/testbench": "^9.0|^10.0|^11.0", "pestphp/pest": "^3.8|^4.0", "pestphp/pest-plugin-laravel": "^3.2|^4.0", "pestphp/pest-plugin-livewire": "^3.0|^4.0", "pestphp/pest-plugin-type-coverage": "^3.6|^4.0", "phpstan/extension-installer": "^1.4", "phpstan/phpstan": "^2.1", "phpstan/phpstan-deprecation-rules": "^2.0", "phpstan/phpstan-phpunit": "^2.0", "phpunit/phpunit": "^11.0|^12.0", "rector/jack": "^0.4.0", "rector/rector": "^2.2", "spatie/laravel-ray": "^1.43" }, "autoload": { "psr-4": { "BezhanSalleh\\FilamentExceptions\\": "src", "BezhanSalleh\\FilamentExceptions\\Database\\Factories\\": "database/factories" } }, "autoload-dev": { "psr-4": { "BezhanSalleh\\FilamentExceptions\\Tests\\": "tests" } }, "scripts": { "analyse": "phpstan analyse", "test": "pest --no-coverage", "type": "pest --type-coverage", "cs": [ "rector", "pint --parallel" ], "refactor": "rector", "finalize": [ "@cs", "@analyse", "@test", "@type" ] }, "config": { "sort-packages": true, "allow-plugins": { "pestphp/pest-plugin": true, "phpstan/extension-installer": true } }, "extra": { "laravel": { "providers": [ "BezhanSalleh\\FilamentExceptions\\FilamentExceptionsServiceProvider" ], "aliases": { "FilamentExceptions": "BezhanSalleh\\FilamentExceptions\\Facades\\FilamentExceptions" } } }, "minimum-stability": "dev", "prefer-stable": true } ================================================ FILE: database/factories/ModelFactory.php ================================================ id(); // Exception details $table->string('type', 255); $table->string('code')->default('0'); $table->longText('message'); $table->string('file', 255); $table->unsignedInteger('line'); $table->json('trace'); // Request details $table->string('method', 10); $table->string('path', 2048); $table->string('ip', 45)->nullable(); // Request data (all nullable since not always present) $table->json('headers')->nullable(); $table->json('cookies')->nullable(); $table->json('body')->nullable(); $table->json('query')->nullable(); // Route context (for Laravel's exception renderer components) $table->json('route_context')->nullable(); $table->json('route_parameters')->nullable(); // Markdown for copy functionality $table->longText('markdown')->nullable(); $table->timestamps(); // Index for common queries $table->index('created_at'); $table->index('type'); }); } public function down() { Schema::dropIfExists('filament_exceptions_table'); } }; ================================================ FILE: package.json ================================================ { "private": true, "type": "module", "engines": { "node": ">=22.19.0" }, "scripts": { "dev": "vite", "build": "vite build", "watch": "vite build --watch" }, "dependencies": { "shiki": "^3.13.0", "tailwindcss": "^4.1.12", "tippy.js": "^6.3.7", "tw-animate-css": "^1.3.7" }, "devDependencies": { "@tailwindcss/vite": "^4.1.12", "vite": "^7.1.11" } } ================================================ FILE: phpstan.neon.dist ================================================ parameters: level: 5 paths: - src ignoreErrors: - identifier: argument.unresolvableType - identifier: argument.type - identifier: trait.unused - identifier: typeCoverage.paramTypeCoverage - identifier: property.notFound - identifier: method.notFound checkOctaneCompatibility: true checkModelProperties: true tmpDir: build/phpstan treatPhpDocTypesAsCertain: false reportUnmatchedIgnoredErrors: false ================================================ FILE: phpunit.xml.dist ================================================ tests ./src ================================================ FILE: phpunit.xml.dist.bak ================================================ tests ./src ================================================ FILE: pint.json ================================================ { "preset": "laravel", "notPath": [ "tests/TestCase.php", "tmp" ], "rules": { "blank_line_before_statement": true, "concat_space": { "spacing": "one" }, "declare_strict_types": true, "global_namespace_import": { "import_classes": true, "import_constants": true, "import_functions": true }, "method_argument_space": true, "ordered_class_elements": { "order": [ "use_trait", "case", "constant", "constant_public", "constant_protected", "constant_private", "property_public", "property_protected", "property_private", "construct", "destruct", "magic", "phpunit", "method_abstract", "method_public_static", "method_public", "method_protected_static", "method_protected", "method_private_static", "method_private" ], "sort_algorithm": "none" }, "ordered_interfaces": true, "ordered_traits": true, "single_trait_insert_per_statement": true, "types_spaces": { "space": "single" } } } ================================================ FILE: rector.php ================================================ withPaths([ __DIR__ . '/src', ]) ->withRules([ DeclareStrictTypesRector::class, ]) ->withPreparedSets( deadCode: true, codeQuality: true, codingStyle: true, typeDeclarations: true, privatization: true, earlyReturn: true, ) ->withPhpSets(); ================================================ FILE: resources/css/styles.css ================================================ @import 'tailwindcss'; @import 'tw-animate-css'; @import 'tippy.js/dist/tippy.css'; @import 'tippy.js/animations/shift-away.css'; /* Configure Tailwind v4 to use class-based dark mode (for Filament compatibility) */ @custom-variant dark (&:where(.dark, .dark *)); /* Scan Laravel's exception renderer components to include all their Tailwind classes */ @source "../../vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components*.blade.php"; /* Also scan our own views */ @source "../views/**/*.blade.php"; [x-cloak] { display: none !important; } .tippy-box[data-theme~='laravel'] { @apply max-w-7xl! rounded-md border text-xs shadow-md backdrop-blur-md overflow-x-auto; @apply border-neutral-800 bg-neutral-900 text-white; } .dark .tippy-box[data-theme~='laravel'] { @apply border-neutral-700 bg-neutral-800 text-neutral-100; } .tippy-content[data-theme~='laravel'] { @apply px-2 py-1; } /* Shiki syntax highlighting dark mode - use .dark class for Filament compatibility */ .dark .shiki, .dark .shiki span { color: var(--shiki-dark) !important; font-style: var(--shiki-dark-font-style) !important; font-weight: var(--shiki-dark-font-weight) !important; text-decoration: var(--shiki-dark-text-decoration) !important; } ================================================ FILE: resources/dist/scripts.js ================================================ var J="top",le="bottom",ue="right",ee="left",ka="auto",Pt=[J,le,ue,ee],lt="start",Rt="end",Ss="clippingParents",Qr="viewport",kt="popper",As="reference",Wa=Pt.reduce(function(e,t){return e.concat([t+"-"+lt,t+"-"+Rt])},[]),Jr=[].concat(Pt,[ka]).reduce(function(e,t){return e.concat([t,t+"-"+lt,t+"-"+Rt])},[]),Rs="beforeRead",Ts="read",Ns="afterRead",Is="beforeMain",Os="main",Ls="afterMain",Ds="beforeWrite",Ps="write",qs="afterWrite",Ms=[Rs,Ts,Ns,Is,Os,Ls,Ds,Ps,qs];function ve(e){return e?(e.nodeName||"").toLowerCase():null}function ae(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function Ve(e){var t=ae(e).Element;return e instanceof t||e instanceof Element}function ce(e){var t=ae(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Ca(e){if(typeof ShadowRoot>"u")return!1;var t=ae(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function zs(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var a=t.styles[n]||{},r=t.attributes[n]||{},i=t.elements[n];!ce(i)||!ve(i)||(Object.assign(i.style,a),Object.keys(r).forEach(function(s){var c=r[s];c===!1?i.removeAttribute(s):i.setAttribute(s,c===!0?"":c)}))})}function Bs(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(a){var r=t.elements[a],i=t.attributes[a]||{},s=Object.keys(t.styles.hasOwnProperty(a)?t.styles[a]:n[a]),c=s.reduce(function(o,l){return o[l]="",o},{});!ce(r)||!ve(r)||(Object.assign(r.style,c),Object.keys(i).forEach(function(o){r.removeAttribute(o)}))})}}const ei={name:"applyStyles",enabled:!0,phase:"write",fn:zs,effect:Bs,requires:["computeStyles"]};function ye(e){return e.split("-")[0]}var We=Math.max,hn=Math.min,ut=Math.round;function ta(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function ti(){return!/^((?!chrome|android).)*safari/i.test(ta())}function pt(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var a=e.getBoundingClientRect(),r=1,i=1;t&&ce(e)&&(r=e.offsetWidth>0&&ut(a.width)/e.offsetWidth||1,i=e.offsetHeight>0&&ut(a.height)/e.offsetHeight||1);var s=Ve(e)?ae(e):window,c=s.visualViewport,o=!ti()&&n,l=(a.left+(o&&c?c.offsetLeft:0))/r,u=(a.top+(o&&c?c.offsetTop:0))/i,p=a.width/r,d=a.height/i;return{width:p,height:d,top:u,right:l+p,bottom:u+d,left:l,x:l,y:u}}function Fa(e){var t=pt(e),n=e.offsetWidth,a=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-a)<=1&&(a=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:a}}function ni(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Ca(n)){var a=t;do{if(a&&e.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function Se(e){return ae(e).getComputedStyle(e)}function Gs(e){return["table","td","th"].indexOf(ve(e))>=0}function Oe(e){return((Ve(e)?e.ownerDocument:e.document)||window.document).documentElement}function jn(e){return ve(e)==="html"?e:e.assignedSlot||e.parentNode||(Ca(e)?e.host:null)||Oe(e)}function Va(e){return!ce(e)||Se(e).position==="fixed"?null:e.offsetParent}function Us(e){var t=/firefox/i.test(ta()),n=/Trident/i.test(ta());if(n&&ce(e)){var a=Se(e);if(a.position==="fixed")return null}var r=jn(e);for(Ca(r)&&(r=r.host);ce(r)&&["html","body"].indexOf(ve(r))<0;){var i=Se(r);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||t&&i.willChange==="filter"||t&&i.filter&&i.filter!=="none")return r;r=r.parentNode}return null}function qt(e){for(var t=ae(e),n=Va(e);n&&Gs(n)&&Se(n).position==="static";)n=Va(n);return n&&(ve(n)==="html"||ve(n)==="body"&&Se(n).position==="static")?t:n||Us(e)||t}function Ea(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Et(e,t,n){return We(e,hn(t,n))}function Hs(e,t,n){var a=Et(e,t,n);return a>n?n:a}function ai(){return{top:0,right:0,bottom:0,left:0}}function ri(e){return Object.assign({},ai(),e)}function ii(e,t){return t.reduce(function(n,a){return n[a]=e,n},{})}var Ws=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,ri(typeof t!="number"?t:ii(t,Pt))};function Vs(e){var t,n=e.state,a=e.name,r=e.options,i=n.elements.arrow,s=n.modifiersData.popperOffsets,c=ye(n.placement),o=Ea(c),l=[ee,ue].indexOf(c)>=0,u=l?"height":"width";if(!(!i||!s)){var p=Ws(r.padding,n),d=Fa(i),g=o==="y"?J:ee,m=o==="y"?le:ue,v=n.rects.reference[u]+n.rects.reference[o]-s[o]-n.rects.popper[u],_=s[o]-n.rects.reference[o],y=qt(i),b=y?o==="y"?y.clientHeight||0:y.clientWidth||0:0,x=v/2-_/2,h=p[g],C=b-d[u]-p[m],k=b/2-d[u]/2+x,S=Et(h,k,C),T=o;n.modifiersData[a]=(t={},t[T]=S,t.centerOffset=S-k,t)}}function Zs(e){var t=e.state,n=e.options,a=n.element,r=a===void 0?"[data-popper-arrow]":a;r!=null&&(typeof r=="string"&&(r=t.elements.popper.querySelector(r),!r)||ni(t.elements.popper,r)&&(t.elements.arrow=r))}const Ys={name:"arrow",enabled:!0,phase:"main",fn:Vs,effect:Zs,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function dt(e){return e.split("-")[1]}var Xs={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Ks(e,t){var n=e.x,a=e.y,r=t.devicePixelRatio||1;return{x:ut(n*r)/r||0,y:ut(a*r)/r||0}}function Za(e){var t,n=e.popper,a=e.popperRect,r=e.placement,i=e.variation,s=e.offsets,c=e.position,o=e.gpuAcceleration,l=e.adaptive,u=e.roundOffsets,p=e.isFixed,d=s.x,g=d===void 0?0:d,m=s.y,v=m===void 0?0:m,_=typeof u=="function"?u({x:g,y:v}):{x:g,y:v};g=_.x,v=_.y;var y=s.hasOwnProperty("x"),b=s.hasOwnProperty("y"),x=ee,h=J,C=window;if(l){var k=qt(n),S="clientHeight",T="clientWidth";if(k===ae(n)&&(k=Oe(n),Se(k).position!=="static"&&c==="absolute"&&(S="scrollHeight",T="scrollWidth")),k=k,r===J||(r===ee||r===ue)&&i===Rt){h=le;var D=p&&k===C&&C.visualViewport?C.visualViewport.height:k[S];v-=D-a.height,v*=o?1:-1}if(r===ee||(r===J||r===le)&&i===Rt){x=ue;var I=p&&k===C&&C.visualViewport?C.visualViewport.width:k[T];g-=I-a.width,g*=o?1:-1}}var P=Object.assign({position:c},l&&Xs),R=u===!0?Ks({x:g,y:v},ae(n)):{x:g,y:v};if(g=R.x,v=R.y,o){var O;return Object.assign({},P,(O={},O[h]=b?"0":"",O[x]=y?"0":"",O.transform=(C.devicePixelRatio||1)<=1?"translate("+g+"px, "+v+"px)":"translate3d("+g+"px, "+v+"px, 0)",O))}return Object.assign({},P,(t={},t[h]=b?v+"px":"",t[x]=y?g+"px":"",t.transform="",t))}function Qs(e){var t=e.state,n=e.options,a=n.gpuAcceleration,r=a===void 0?!0:a,i=n.adaptive,s=i===void 0?!0:i,c=n.roundOffsets,o=c===void 0?!0:c,l={placement:ye(t.placement),variation:dt(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:r,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,Za(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:o})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,Za(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:o})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const Js={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Qs,data:{}};var tn={passive:!0};function eo(e){var t=e.state,n=e.instance,a=e.options,r=a.scroll,i=r===void 0?!0:r,s=a.resize,c=s===void 0?!0:s,o=ae(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&l.forEach(function(u){u.addEventListener("scroll",n.update,tn)}),c&&o.addEventListener("resize",n.update,tn),function(){i&&l.forEach(function(u){u.removeEventListener("scroll",n.update,tn)}),c&&o.removeEventListener("resize",n.update,tn)}}const to={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:eo,data:{}};var no={left:"right",right:"left",bottom:"top",top:"bottom"};function un(e){return e.replace(/left|right|bottom|top/g,function(t){return no[t]})}var ao={start:"end",end:"start"};function Ya(e){return e.replace(/start|end/g,function(t){return ao[t]})}function $a(e){var t=ae(e),n=t.pageXOffset,a=t.pageYOffset;return{scrollLeft:n,scrollTop:a}}function ja(e){return pt(Oe(e)).left+$a(e).scrollLeft}function ro(e,t){var n=ae(e),a=Oe(e),r=n.visualViewport,i=a.clientWidth,s=a.clientHeight,c=0,o=0;if(r){i=r.width,s=r.height;var l=ti();(l||!l&&t==="fixed")&&(c=r.offsetLeft,o=r.offsetTop)}return{width:i,height:s,x:c+ja(e),y:o}}function io(e){var t,n=Oe(e),a=$a(e),r=(t=e.ownerDocument)==null?void 0:t.body,i=We(n.scrollWidth,n.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),s=We(n.scrollHeight,n.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),c=-a.scrollLeft+ja(e),o=-a.scrollTop;return Se(r||n).direction==="rtl"&&(c+=We(n.clientWidth,r?r.clientWidth:0)-i),{width:i,height:s,x:c,y:o}}function Sa(e){var t=Se(e),n=t.overflow,a=t.overflowX,r=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+r+a)}function si(e){return["html","body","#document"].indexOf(ve(e))>=0?e.ownerDocument.body:ce(e)&&Sa(e)?e:si(jn(e))}function $t(e,t){var n;t===void 0&&(t=[]);var a=si(e),r=a===((n=e.ownerDocument)==null?void 0:n.body),i=ae(a),s=r?[i].concat(i.visualViewport||[],Sa(a)?a:[]):a,c=t.concat(s);return r?c:c.concat($t(jn(s)))}function na(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function so(e,t){var n=pt(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function Xa(e,t,n){return t===Qr?na(ro(e,n)):Ve(t)?so(t,n):na(io(Oe(e)))}function oo(e){var t=$t(jn(e)),n=["absolute","fixed"].indexOf(Se(e).position)>=0,a=n&&ce(e)?qt(e):e;return Ve(a)?t.filter(function(r){return Ve(r)&&ni(r,a)&&ve(r)!=="body"}):[]}function co(e,t,n,a){var r=t==="clippingParents"?oo(e):[].concat(t),i=[].concat(r,[n]),s=i[0],c=i.reduce(function(o,l){var u=Xa(e,l,a);return o.top=We(u.top,o.top),o.right=hn(u.right,o.right),o.bottom=hn(u.bottom,o.bottom),o.left=We(u.left,o.left),o},Xa(e,s,a));return c.width=c.right-c.left,c.height=c.bottom-c.top,c.x=c.left,c.y=c.top,c}function oi(e){var t=e.reference,n=e.element,a=e.placement,r=a?ye(a):null,i=a?dt(a):null,s=t.x+t.width/2-n.width/2,c=t.y+t.height/2-n.height/2,o;switch(r){case J:o={x:s,y:t.y-n.height};break;case le:o={x:s,y:t.y+t.height};break;case ue:o={x:t.x+t.width,y:c};break;case ee:o={x:t.x-n.width,y:c};break;default:o={x:t.x,y:t.y}}var l=r?Ea(r):null;if(l!=null){var u=l==="y"?"height":"width";switch(i){case lt:o[l]=o[l]-(t[u]/2-n[u]/2);break;case Rt:o[l]=o[l]+(t[u]/2-n[u]/2);break}}return o}function Tt(e,t){t===void 0&&(t={});var n=t,a=n.placement,r=a===void 0?e.placement:a,i=n.strategy,s=i===void 0?e.strategy:i,c=n.boundary,o=c===void 0?Ss:c,l=n.rootBoundary,u=l===void 0?Qr:l,p=n.elementContext,d=p===void 0?kt:p,g=n.altBoundary,m=g===void 0?!1:g,v=n.padding,_=v===void 0?0:v,y=ri(typeof _!="number"?_:ii(_,Pt)),b=d===kt?As:kt,x=e.rects.popper,h=e.elements[m?b:d],C=co(Ve(h)?h:h.contextElement||Oe(e.elements.popper),o,u,s),k=pt(e.elements.reference),S=oi({reference:k,element:x,placement:r}),T=na(Object.assign({},x,S)),D=d===kt?T:k,I={top:C.top-D.top+y.top,bottom:D.bottom-C.bottom+y.bottom,left:C.left-D.left+y.left,right:D.right-C.right+y.right},P=e.modifiersData.offset;if(d===kt&&P){var R=P[r];Object.keys(I).forEach(function(O){var q=[ue,le].indexOf(O)>=0?1:-1,z=[J,le].indexOf(O)>=0?"y":"x";I[O]+=R[z]*q})}return I}function lo(e,t){t===void 0&&(t={});var n=t,a=n.placement,r=n.boundary,i=n.rootBoundary,s=n.padding,c=n.flipVariations,o=n.allowedAutoPlacements,l=o===void 0?Jr:o,u=dt(a),p=u?c?Wa:Wa.filter(function(m){return dt(m)===u}):Pt,d=p.filter(function(m){return l.indexOf(m)>=0});d.length===0&&(d=p);var g=d.reduce(function(m,v){return m[v]=Tt(e,{placement:v,boundary:r,rootBoundary:i,padding:s})[ye(v)],m},{});return Object.keys(g).sort(function(m,v){return g[m]-g[v]})}function uo(e){if(ye(e)===ka)return[];var t=un(e);return[Ya(e),t,Ya(t)]}function po(e){var t=e.state,n=e.options,a=e.name;if(!t.modifiersData[a]._skip){for(var r=n.mainAxis,i=r===void 0?!0:r,s=n.altAxis,c=s===void 0?!0:s,o=n.fallbackPlacements,l=n.padding,u=n.boundary,p=n.rootBoundary,d=n.altBoundary,g=n.flipVariations,m=g===void 0?!0:g,v=n.allowedAutoPlacements,_=t.options.placement,y=ye(_),b=y===_,x=o||(b||!m?[un(_)]:uo(_)),h=[_].concat(x).reduce(function(we,pe){return we.concat(ye(pe)===ka?lo(t,{placement:pe,boundary:u,rootBoundary:p,padding:l,flipVariations:m,allowedAutoPlacements:v}):pe)},[]),C=t.rects.reference,k=t.rects.popper,S=new Map,T=!0,D=h[0],I=0;I=0,z=q?"width":"height",B=Tt(t,{placement:P,boundary:u,rootBoundary:p,altBoundary:d,padding:l}),Y=q?O?ue:ee:O?le:J;C[z]>k[z]&&(Y=un(Y));var Z=un(Y),he=[];if(i&&he.push(B[R]<=0),c&&he.push(B[Y]<=0,B[Z]<=0),he.every(function(we){return we})){D=P,T=!1;break}S.set(P,he)}if(T)for(var ge=m?3:1,Le=function(pe){var xe=h.find(function(Xe){var ke=S.get(Xe);if(ke)return ke.slice(0,pe).every(function(Ke){return Ke})});if(xe)return D=xe,"break"},fe=ge;fe>0;fe--){var De=Le(fe);if(De==="break")break}t.placement!==D&&(t.modifiersData[a]._skip=!0,t.placement=D,t.reset=!0)}}const mo={name:"flip",enabled:!0,phase:"main",fn:po,requiresIfExists:["offset"],data:{_skip:!1}};function Ka(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Qa(e){return[J,ue,le,ee].some(function(t){return e[t]>=0})}function ho(e){var t=e.state,n=e.name,a=t.rects.reference,r=t.rects.popper,i=t.modifiersData.preventOverflow,s=Tt(t,{elementContext:"reference"}),c=Tt(t,{altBoundary:!0}),o=Ka(s,a),l=Ka(c,r,i),u=Qa(o),p=Qa(l);t.modifiersData[n]={referenceClippingOffsets:o,popperEscapeOffsets:l,isReferenceHidden:u,hasPopperEscaped:p},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":p})}const go={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:ho};function fo(e,t,n){var a=ye(e),r=[ee,J].indexOf(a)>=0?-1:1,i=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,s=i[0],c=i[1];return s=s||0,c=(c||0)*r,[ee,ue].indexOf(a)>=0?{x:c,y:s}:{x:s,y:c}}function bo(e){var t=e.state,n=e.options,a=e.name,r=n.offset,i=r===void 0?[0,0]:r,s=Jr.reduce(function(u,p){return u[p]=fo(p,t.rects,i),u},{}),c=s[t.placement],o=c.x,l=c.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=o,t.modifiersData.popperOffsets.y+=l),t.modifiersData[a]=s}const _o={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:bo};function yo(e){var t=e.state,n=e.name;t.modifiersData[n]=oi({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}const vo={name:"popperOffsets",enabled:!0,phase:"read",fn:yo,data:{}};function wo(e){return e==="x"?"y":"x"}function xo(e){var t=e.state,n=e.options,a=e.name,r=n.mainAxis,i=r===void 0?!0:r,s=n.altAxis,c=s===void 0?!1:s,o=n.boundary,l=n.rootBoundary,u=n.altBoundary,p=n.padding,d=n.tether,g=d===void 0?!0:d,m=n.tetherOffset,v=m===void 0?0:m,_=Tt(t,{boundary:o,rootBoundary:l,padding:p,altBoundary:u}),y=ye(t.placement),b=dt(t.placement),x=!b,h=Ea(y),C=wo(h),k=t.modifiersData.popperOffsets,S=t.rects.reference,T=t.rects.popper,D=typeof v=="function"?v(Object.assign({},t.rects,{placement:t.placement})):v,I=typeof D=="number"?{mainAxis:D,altAxis:D}:Object.assign({mainAxis:0,altAxis:0},D),P=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,R={x:0,y:0};if(k){if(i){var O,q=h==="y"?J:ee,z=h==="y"?le:ue,B=h==="y"?"height":"width",Y=k[h],Z=Y+_[q],he=Y-_[z],ge=g?-T[B]/2:0,Le=b===lt?S[B]:T[B],fe=b===lt?-T[B]:-S[B],De=t.elements.arrow,we=g&&De?Fa(De):{width:0,height:0},pe=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:ai(),xe=pe[q],Xe=pe[z],ke=Et(0,S[B],we[B]),Ke=x?S[B]/2-ge-ke-xe-I.mainAxis:Le-ke-xe-I.mainAxis,Ae=x?-S[B]/2+ge+ke+Xe+I.mainAxis:fe+ke+Xe+I.mainAxis,Qe=t.elements.arrow&&qt(t.elements.arrow),Ut=Qe?h==="y"?Qe.clientTop||0:Qe.clientLeft||0:0,_t=(O=P?.[h])!=null?O:0,Ht=Y+Ke-_t-Ut,Wt=Y+Ae-_t,yt=Et(g?hn(Z,Ht):Z,Y,g?We(he,Wt):he);k[h]=yt,R[h]=yt-Y}if(c){var vt,Vt=h==="x"?J:ee,Zt=h==="x"?le:ue,Ce=k[C],Re=C==="y"?"height":"width",wt=Ce+_[Vt],Pe=Ce-_[Zt],xt=[J,ee].indexOf(y)!==-1,Yt=(vt=P?.[C])!=null?vt:0,Xt=xt?wt:Ce-S[Re]-T[Re]-Yt+I.altAxis,Kt=xt?Ce+S[Re]+T[Re]-Yt-I.altAxis:Pe,Qt=g&&xt?Hs(Xt,Ce,Kt):Et(g?Xt:wt,Ce,g?Kt:Pe);k[C]=Qt,R[C]=Qt-Ce}t.modifiersData[a]=R}}const ko={name:"preventOverflow",enabled:!0,phase:"main",fn:xo,requiresIfExists:["offset"]};function Co(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Fo(e){return e===ae(e)||!ce(e)?$a(e):Co(e)}function Eo(e){var t=e.getBoundingClientRect(),n=ut(t.width)/e.offsetWidth||1,a=ut(t.height)/e.offsetHeight||1;return n!==1||a!==1}function $o(e,t,n){n===void 0&&(n=!1);var a=ce(t),r=ce(t)&&Eo(t),i=Oe(t),s=pt(e,r,n),c={scrollLeft:0,scrollTop:0},o={x:0,y:0};return(a||!a&&!n)&&((ve(t)!=="body"||Sa(i))&&(c=Fo(t)),ce(t)?(o=pt(t,!0),o.x+=t.clientLeft,o.y+=t.clientTop):i&&(o.x=ja(i))),{x:s.left+c.scrollLeft-o.x,y:s.top+c.scrollTop-o.y,width:s.width,height:s.height}}function jo(e){var t=new Map,n=new Set,a=[];e.forEach(function(i){t.set(i.name,i)});function r(i){n.add(i.name);var s=[].concat(i.requires||[],i.requiresIfExists||[]);s.forEach(function(c){if(!n.has(c)){var o=t.get(c);o&&r(o)}}),a.push(i)}return e.forEach(function(i){n.has(i.name)||r(i)}),a}function So(e){var t=jo(e);return Ms.reduce(function(n,a){return n.concat(t.filter(function(r){return r.phase===a}))},[])}function Ao(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function Ro(e){var t=e.reduce(function(n,a){var r=n[a.name];return n[a.name]=r?Object.assign({},r,a,{options:Object.assign({},r.options,a.options),data:Object.assign({},r.data,a.data)}):a,n},{});return Object.keys(t).map(function(n){return t[n]})}var Ja={placement:"bottom",modifiers:[],strategy:"absolute"};function er(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function di(e,t){return typeof e=="function"?e.apply(void 0,t):e}function tr(e,t){if(t===0)return e;var n;return function(a){clearTimeout(n),n=setTimeout(function(){e(a)},t)}}function Do(e){return e.split(/\s+/).filter(Boolean)}function at(e){return[].concat(e)}function nr(e,t){e.indexOf(t)===-1&&e.push(t)}function Po(e){return e.filter(function(t,n){return e.indexOf(t)===n})}function qo(e){return e.split("-")[0]}function gn(e){return[].slice.call(e)}function ar(e){return Object.keys(e).reduce(function(t,n){return e[n]!==void 0&&(t[n]=e[n]),t},{})}function jt(){return document.createElement("div")}function Sn(e){return["Element","Fragment"].some(function(t){return Aa(e,t)})}function Mo(e){return Aa(e,"NodeList")}function zo(e){return Aa(e,"MouseEvent")}function Bo(e){return!!(e&&e._tippy&&e._tippy.reference===e)}function Go(e){return Sn(e)?[e]:Mo(e)?gn(e):Array.isArray(e)?e:gn(document.querySelectorAll(e))}function Pn(e,t){e.forEach(function(n){n&&(n.style.transitionDuration=t+"ms")})}function rr(e,t){e.forEach(function(n){n&&n.setAttribute("data-state",t)})}function Uo(e){var t,n=at(e),a=n[0];return a!=null&&(t=a.ownerDocument)!=null&&t.body?a.ownerDocument:document}function Ho(e,t){var n=t.clientX,a=t.clientY;return e.every(function(r){var i=r.popperRect,s=r.popperState,c=r.props,o=c.interactiveBorder,l=qo(s.placement),u=s.modifiersData.offset;if(!u)return!0;var p=l==="bottom"?u.top.y:0,d=l==="top"?u.bottom.y:0,g=l==="right"?u.left.x:0,m=l==="left"?u.right.x:0,v=i.top-a+p>o,_=a-i.bottom-d>o,y=i.left-n+g>o,b=n-i.right-m>o;return v||_||y||b})}function qn(e,t,n){var a=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(r){e[a](r,n)})}function ir(e,t){for(var n=t;n;){var a;if(e.contains(n))return!0;n=n.getRootNode==null||(a=n.getRootNode())==null?void 0:a.host}return!1}var _e={isTouch:!1},sr=0;function Wo(){_e.isTouch||(_e.isTouch=!0,window.performance&&document.addEventListener("mousemove",mi))}function mi(){var e=performance.now();e-sr<20&&(_e.isTouch=!1,document.removeEventListener("mousemove",mi)),sr=e}function Vo(){var e=document.activeElement;if(Bo(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}function Zo(){document.addEventListener("touchstart",Wo,ze),window.addEventListener("blur",Vo)}var Yo=typeof window<"u"&&typeof document<"u",Xo=Yo?!!window.msCrypto:!1,Ko={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},Qo={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},me=Object.assign({appendTo:pi,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},Ko,Qo),Jo=Object.keys(me),ec=function(t){var n=Object.keys(t);n.forEach(function(a){me[a]=t[a]})};function hi(e){var t=e.plugins||[],n=t.reduce(function(a,r){var i=r.name,s=r.defaultValue;if(i){var c;a[i]=e[i]!==void 0?e[i]:(c=me[i])!=null?c:s}return a},{});return Object.assign({},e,n)}function tc(e,t){var n=t?Object.keys(hi(Object.assign({},me,{plugins:t}))):Jo,a=n.reduce(function(r,i){var s=(e.getAttribute("data-tippy-"+i)||"").trim();if(!s)return r;if(i==="content")r[i]=s;else try{r[i]=JSON.parse(s)}catch{r[i]=s}return r},{});return a}function or(e,t){var n=Object.assign({},t,{content:di(t.content,[e])},t.ignoreAttributes?{}:tc(e,t.plugins));return n.aria=Object.assign({},me.aria,n.aria),n.aria={expanded:n.aria.expanded==="auto"?t.interactive:n.aria.expanded,content:n.aria.content==="auto"?t.interactive?null:"describedby":n.aria.content},n}var nc=function(){return"innerHTML"};function aa(e,t){e[nc()]=t}function cr(e){var t=jt();return e===!0?t.className=li:(t.className=ui,Sn(e)?t.appendChild(e):aa(t,e)),t}function lr(e,t){Sn(t.content)?(aa(e,""),e.appendChild(t.content)):typeof t.content!="function"&&(t.allowHTML?aa(e,t.content):e.textContent=t.content)}function ra(e){var t=e.firstElementChild,n=gn(t.children);return{box:t,content:n.find(function(a){return a.classList.contains(ci)}),arrow:n.find(function(a){return a.classList.contains(li)||a.classList.contains(ui)}),backdrop:n.find(function(a){return a.classList.contains(Lo)})}}function gi(e){var t=jt(),n=jt();n.className=Oo,n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var a=jt();a.className=ci,a.setAttribute("data-state","hidden"),lr(a,e.props),t.appendChild(n),n.appendChild(a),r(e.props,e.props);function r(i,s){var c=ra(t),o=c.box,l=c.content,u=c.arrow;s.theme?o.setAttribute("data-theme",s.theme):o.removeAttribute("data-theme"),typeof s.animation=="string"?o.setAttribute("data-animation",s.animation):o.removeAttribute("data-animation"),s.inertia?o.setAttribute("data-inertia",""):o.removeAttribute("data-inertia"),o.style.maxWidth=typeof s.maxWidth=="number"?s.maxWidth+"px":s.maxWidth,s.role?o.setAttribute("role",s.role):o.removeAttribute("role"),(i.content!==s.content||i.allowHTML!==s.allowHTML)&&lr(l,e.props),s.arrow?u?i.arrow!==s.arrow&&(o.removeChild(u),o.appendChild(cr(s.arrow))):o.appendChild(cr(s.arrow)):u&&o.removeChild(u)}return{popper:t,onUpdate:r}}gi.$$tippy=!0;var ac=1,nn=[],Mn=[];function rc(e,t){var n=or(e,Object.assign({},me,hi(ar(t)))),a,r,i,s=!1,c=!1,o=!1,l=!1,u,p,d,g=[],m=tr(Ht,n.interactiveDebounce),v,_=ac++,y=null,b=Po(n.plugins),x={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},h={id:_,reference:e,popper:jt(),popperInstance:y,props:n,state:x,plugins:b,clearDelayTimeouts:Xt,setProps:Kt,setContent:Qt,show:ks,hide:Cs,hideWithInteractivity:Fs,enable:xt,disable:Yt,unmount:Es,destroy:$s};if(!n.render)return h;var C=n.render(h),k=C.popper,S=C.onUpdate;k.setAttribute("data-tippy-root",""),k.id="tippy-"+h.id,h.popper=k,e._tippy=h,k._tippy=h;var T=b.map(function(f){return f.fn(h)}),D=e.hasAttribute("aria-expanded");return Qe(),ge(),Y(),Z("onCreate",[h]),n.showOnCreate&&wt(),k.addEventListener("mouseenter",function(){h.props.interactive&&h.state.isVisible&&h.clearDelayTimeouts()}),k.addEventListener("mouseleave",function(){h.props.interactive&&h.props.trigger.indexOf("mouseenter")>=0&&q().addEventListener("mousemove",m)}),h;function I(){var f=h.props.touch;return Array.isArray(f)?f:[f,0]}function P(){return I()[0]==="hold"}function R(){var f;return!!((f=h.props.render)!=null&&f.$$tippy)}function O(){return v||e}function q(){var f=O().parentNode;return f?Uo(f):document}function z(){return ra(k)}function B(f){return h.state.isMounted&&!h.state.isVisible||_e.isTouch||u&&u.type==="focus"?0:Dn(h.props.delay,f?0:1,me.delay)}function Y(f){f===void 0&&(f=!1),k.style.pointerEvents=h.props.interactive&&!f?"":"none",k.style.zIndex=""+h.props.zIndex}function Z(f,F,E){if(E===void 0&&(E=!0),T.forEach(function(A){A[f]&&A[f].apply(A,F)}),E){var N;(N=h.props)[f].apply(N,F)}}function he(){var f=h.props.aria;if(f.content){var F="aria-"+f.content,E=k.id,N=at(h.props.triggerTarget||e);N.forEach(function(A){var Q=A.getAttribute(F);if(h.state.isVisible)A.setAttribute(F,Q?Q+" "+E:E);else{var re=Q&&Q.replace(E,"").trim();re?A.setAttribute(F,re):A.removeAttribute(F)}})}}function ge(){if(!(D||!h.props.aria.expanded)){var f=at(h.props.triggerTarget||e);f.forEach(function(F){h.props.interactive?F.setAttribute("aria-expanded",h.state.isVisible&&F===O()?"true":"false"):F.removeAttribute("aria-expanded")})}}function Le(){q().removeEventListener("mousemove",m),nn=nn.filter(function(f){return f!==m})}function fe(f){if(!(_e.isTouch&&(o||f.type==="mousedown"))){var F=f.composedPath&&f.composedPath()[0]||f.target;if(!(h.props.interactive&&ir(k,F))){if(at(h.props.triggerTarget||e).some(function(E){return ir(E,F)})){if(_e.isTouch||h.state.isVisible&&h.props.trigger.indexOf("click")>=0)return}else Z("onClickOutside",[h,f]);h.props.hideOnClick===!0&&(h.clearDelayTimeouts(),h.hide(),c=!0,setTimeout(function(){c=!1}),h.state.isMounted||xe())}}}function De(){o=!0}function we(){o=!1}function pe(){var f=q();f.addEventListener("mousedown",fe,!0),f.addEventListener("touchend",fe,ze),f.addEventListener("touchstart",we,ze),f.addEventListener("touchmove",De,ze)}function xe(){var f=q();f.removeEventListener("mousedown",fe,!0),f.removeEventListener("touchend",fe,ze),f.removeEventListener("touchstart",we,ze),f.removeEventListener("touchmove",De,ze)}function Xe(f,F){Ke(f,function(){!h.state.isVisible&&k.parentNode&&k.parentNode.contains(k)&&F()})}function ke(f,F){Ke(f,F)}function Ke(f,F){var E=z().box;function N(A){A.target===E&&(qn(E,"remove",N),F())}if(f===0)return F();qn(E,"remove",p),qn(E,"add",N),p=N}function Ae(f,F,E){E===void 0&&(E=!1);var N=at(h.props.triggerTarget||e);N.forEach(function(A){A.addEventListener(f,F,E),g.push({node:A,eventType:f,handler:F,options:E})})}function Qe(){P()&&(Ae("touchstart",_t,{passive:!0}),Ae("touchend",Wt,{passive:!0})),Do(h.props.trigger).forEach(function(f){if(f!=="manual")switch(Ae(f,_t),f){case"mouseenter":Ae("mouseleave",Wt);break;case"focus":Ae(Xo?"focusout":"blur",yt);break;case"focusin":Ae("focusout",yt);break}})}function Ut(){g.forEach(function(f){var F=f.node,E=f.eventType,N=f.handler,A=f.options;F.removeEventListener(E,N,A)}),g=[]}function _t(f){var F,E=!1;if(!(!h.state.isEnabled||vt(f)||c)){var N=((F=u)==null?void 0:F.type)==="focus";u=f,v=f.currentTarget,ge(),!h.state.isVisible&&zo(f)&&nn.forEach(function(A){return A(f)}),f.type==="click"&&(h.props.trigger.indexOf("mouseenter")<0||s)&&h.props.hideOnClick!==!1&&h.state.isVisible?E=!0:wt(f),f.type==="click"&&(s=!E),E&&!N&&Pe(f)}}function Ht(f){var F=f.target,E=O().contains(F)||k.contains(F);if(!(f.type==="mousemove"&&E)){var N=Re().concat(k).map(function(A){var Q,re=A._tippy,Je=(Q=re.popperInstance)==null?void 0:Q.state;return Je?{popperRect:A.getBoundingClientRect(),popperState:Je,props:n}:null}).filter(Boolean);Ho(N,f)&&(Le(),Pe(f))}}function Wt(f){var F=vt(f)||h.props.trigger.indexOf("click")>=0&&s;if(!F){if(h.props.interactive){h.hideWithInteractivity(f);return}Pe(f)}}function yt(f){h.props.trigger.indexOf("focusin")<0&&f.target!==O()||h.props.interactive&&f.relatedTarget&&k.contains(f.relatedTarget)||Pe(f)}function vt(f){return _e.isTouch?P()!==f.type.indexOf("touch")>=0:!1}function Vt(){Zt();var f=h.props,F=f.popperOptions,E=f.placement,N=f.offset,A=f.getReferenceClientRect,Q=f.moveTransition,re=R()?ra(k).arrow:null,Je=A?{getBoundingClientRect:A,contextElement:A.contextElement||O()}:e,Ha={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(Jt){var et=Jt.state;if(R()){var js=z(),Ln=js.box;["placement","reference-hidden","escaped"].forEach(function(en){en==="placement"?Ln.setAttribute("data-placement",et.placement):et.attributes.popper["data-popper-"+en]?Ln.setAttribute("data-"+en,""):Ln.removeAttribute("data-"+en)}),et.attributes.popper={}}}},qe=[{name:"offset",options:{offset:N}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!Q}},Ha];R()&&re&&qe.push({name:"arrow",options:{element:re,padding:3}}),qe.push.apply(qe,F?.modifiers||[]),h.popperInstance=Io(Je,k,Object.assign({},F,{placement:E,onFirstUpdate:d,modifiers:qe}))}function Zt(){h.popperInstance&&(h.popperInstance.destroy(),h.popperInstance=null)}function Ce(){var f=h.props.appendTo,F,E=O();h.props.interactive&&f===pi||f==="parent"?F=E.parentNode:F=di(f,[E]),F.contains(k)||F.appendChild(k),h.state.isMounted=!0,Vt()}function Re(){return gn(k.querySelectorAll("[data-tippy-root]"))}function wt(f){h.clearDelayTimeouts(),f&&Z("onTrigger",[h,f]),pe();var F=B(!0),E=I(),N=E[0],A=E[1];_e.isTouch&&N==="hold"&&A&&(F=A),F?a=setTimeout(function(){h.show()},F):h.show()}function Pe(f){if(h.clearDelayTimeouts(),Z("onUntrigger",[h,f]),!h.state.isVisible){xe();return}if(!(h.props.trigger.indexOf("mouseenter")>=0&&h.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(f.type)>=0&&s)){var F=B(!1);F?r=setTimeout(function(){h.state.isVisible&&h.hide()},F):i=requestAnimationFrame(function(){h.hide()})}}function xt(){h.state.isEnabled=!0}function Yt(){h.hide(),h.state.isEnabled=!1}function Xt(){clearTimeout(a),clearTimeout(r),cancelAnimationFrame(i)}function Kt(f){if(!h.state.isDestroyed){Z("onBeforeUpdate",[h,f]),Ut();var F=h.props,E=or(e,Object.assign({},F,ar(f),{ignoreAttributes:!0}));h.props=E,Qe(),F.interactiveDebounce!==E.interactiveDebounce&&(Le(),m=tr(Ht,E.interactiveDebounce)),F.triggerTarget&&!E.triggerTarget?at(F.triggerTarget).forEach(function(N){N.removeAttribute("aria-expanded")}):E.triggerTarget&&e.removeAttribute("aria-expanded"),ge(),Y(),S&&S(F,E),h.popperInstance&&(Vt(),Re().forEach(function(N){requestAnimationFrame(N._tippy.popperInstance.forceUpdate)})),Z("onAfterUpdate",[h,f])}}function Qt(f){h.setProps({content:f})}function ks(){var f=h.state.isVisible,F=h.state.isDestroyed,E=!h.state.isEnabled,N=_e.isTouch&&!h.props.touch,A=Dn(h.props.duration,0,me.duration);if(!(f||F||E||N)&&!O().hasAttribute("disabled")&&(Z("onShow",[h],!1),h.props.onShow(h)!==!1)){if(h.state.isVisible=!0,R()&&(k.style.visibility="visible"),Y(),pe(),h.state.isMounted||(k.style.transition="none"),R()){var Q=z(),re=Q.box,Je=Q.content;Pn([re,Je],0)}d=function(){var qe;if(!(!h.state.isVisible||l)){if(l=!0,k.offsetHeight,k.style.transition=h.props.moveTransition,R()&&h.props.animation){var On=z(),Jt=On.box,et=On.content;Pn([Jt,et],A),rr([Jt,et],"visible")}he(),ge(),nr(Mn,h),(qe=h.popperInstance)==null||qe.forceUpdate(),Z("onMount",[h]),h.props.animation&&R()&&ke(A,function(){h.state.isShown=!0,Z("onShown",[h])})}},Ce()}}function Cs(){var f=!h.state.isVisible,F=h.state.isDestroyed,E=!h.state.isEnabled,N=Dn(h.props.duration,1,me.duration);if(!(f||F||E)&&(Z("onHide",[h],!1),h.props.onHide(h)!==!1)){if(h.state.isVisible=!1,h.state.isShown=!1,l=!1,s=!1,R()&&(k.style.visibility="hidden"),Le(),xe(),Y(!0),R()){var A=z(),Q=A.box,re=A.content;h.props.animation&&(Pn([Q,re],N),rr([Q,re],"hidden"))}he(),ge(),h.props.animation?R()&&Xe(N,h.unmount):h.unmount()}}function Fs(f){q().addEventListener("mousemove",m),nr(nn,m),m(f)}function Es(){h.state.isVisible&&h.hide(),h.state.isMounted&&(Zt(),Re().forEach(function(f){f._tippy.unmount()}),k.parentNode&&k.parentNode.removeChild(k),Mn=Mn.filter(function(f){return f!==h}),h.state.isMounted=!1,Z("onHidden",[h]))}function $s(){h.state.isDestroyed||(h.clearDelayTimeouts(),h.unmount(),Ut(),delete e._tippy,h.state.isDestroyed=!0,Z("onDestroy",[h]))}}function Mt(e,t){t===void 0&&(t={});var n=me.plugins.concat(t.plugins||[]);Zo();var a=Object.assign({},t,{plugins:n}),r=Go(e),i=r.reduce(function(s,c){var o=c&&rc(c,a);return o&&s.push(o),s},[]);return Sn(e)?i[0]:i}Mt.defaultProps=me;Mt.setDefaultProps=ec;Mt.currentInput=_e;Object.assign({},ei,{effect:function(t){var n=t.state,a={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(n.elements.popper.style,a.popper),n.styles=a,n.elements.arrow&&Object.assign(n.elements.arrow.style,a.arrow)}});Mt.setDefaultProps({render:gi});let W=class extends Error{constructor(t){super(t),this.name="ShikiError"}};function ic(e){return Ra(e)}function Ra(e){return Array.isArray(e)?sc(e):e instanceof RegExp?e:typeof e=="object"?oc(e):e}function sc(e){let t=[];for(let n=0,a=e.length;n{for(let a in n)e[a]=n[a]}),e}function bi(e){const t=~e.lastIndexOf("/")||~e.lastIndexOf("\\");return t===0?e:~t===e.length-1?bi(e.substring(0,e.length-1)):e.substr(~t+1)}var zn=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g,an=class{static hasCaptures(e){return e===null?!1:(zn.lastIndex=0,zn.test(e))}static replaceCaptures(e,t,n){return e.replace(zn,(a,r,i,s)=>{let c=n[parseInt(r||i,10)];if(c){let o=t.substring(c.start,c.end);for(;o[0]===".";)o=o.substring(1);switch(s){case"downcase":return o.toLowerCase();case"upcase":return o.toUpperCase();default:return o}}else return a})}};function _i(e,t){return et?1:0}function yi(e,t){if(e===null&&t===null)return 0;if(!e)return-1;if(!t)return 1;let n=e.length,a=t.length;if(n===a){for(let r=0;rthis._root.match(e));getColorMap(){return this._colorMap.getColorMap()}getDefaults(){return this._defaults}match(e){if(e===null)return this._defaults;const t=e.scopeName,a=this._cachedMatchRoot.get(t).find(r=>cc(e.parent,r.parentScopes));return a?new xi(a.fontStyle,a.foreground,a.background):null}},Bn=class pn{constructor(t,n){this.parent=t,this.scopeName=n}static push(t,n){for(const a of n)t=new pn(t,a);return t}static from(...t){let n=null;for(let a=0;a"){if(n===t.length-1)return!1;a=t[++n],r=!0}for(;e&&!lc(e.scopeName,a);){if(r)return!1;e=e.parent}if(!e)return!1;e=e.parent}return!0}function lc(e,t){return t===e||e.startsWith(t)&&e[t.length]==="."}var xi=class{constructor(e,t,n){this.fontStyle=e,this.foregroundId=t,this.backgroundId=n}};function uc(e){if(!e)return[];if(!e.settings||!Array.isArray(e.settings))return[];let t=e.settings,n=[],a=0;for(let r=0,i=t.length;r1&&(_=m.slice(0,m.length-1),_.reverse()),n[a++]=new pc(v,_,r,o,l,u)}}return n}var pc=class{constructor(e,t,n,a,r,i){this.scope=e,this.parentScopes=t,this.index=n,this.fontStyle=a,this.foreground=r,this.background=i}},K=(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))(K||{});function dc(e,t){e.sort((o,l)=>{let u=_i(o.scope,l.scope);return u!==0||(u=yi(o.parentScopes,l.parentScopes),u!==0)?u:o.index-l.index});let n=0,a="#000000",r="#ffffff";for(;e.length>=1&&e[0].scope==="";){let o=e.shift();o.fontStyle!==-1&&(n=o.fontStyle),o.foreground!==null&&(a=o.foreground),o.background!==null&&(r=o.background)}let i=new mc(t),s=new xi(n,i.getId(a),i.getId(r)),c=new gc(new ia(0,null,-1,0,0),[]);for(let o=0,l=e.length;ot?console.log("how did this happen?"):this.scopeDepth=t,n!==-1&&(this.fontStyle=n),a!==0&&(this.foreground=a),r!==0&&(this.background=r)}},gc=class sa{constructor(t,n=[],a={}){this._mainRule=t,this._children=a,this._rulesWithParentScopes=n}_rulesWithParentScopes;static _cmpBySpecificity(t,n){if(t.scopeDepth!==n.scopeDepth)return n.scopeDepth-t.scopeDepth;let a=0,r=0;for(;t.parentScopes[a]===">"&&a++,n.parentScopes[r]===">"&&r++,!(a>=t.parentScopes.length||r>=n.parentScopes.length);){const i=n.parentScopes[r].length-t.parentScopes[a].length;if(i!==0)return i;a++,r++}return n.parentScopes.length-t.parentScopes.length}match(t){if(t!==""){let a=t.indexOf("."),r,i;if(a===-1?(r=t,i=""):(r=t.substring(0,a),i=t.substring(a+1)),this._children.hasOwnProperty(r))return this._children[r].match(i)}const n=this._rulesWithParentScopes.concat(this._mainRule);return n.sort(sa._cmpBySpecificity),n}insert(t,n,a,r,i,s){if(n===""){this._doInsertHere(t,a,r,i,s);return}let c=n.indexOf("."),o,l;c===-1?(o=n,l=""):(o=n.substring(0,c),l=n.substring(c+1));let u;this._children.hasOwnProperty(o)?u=this._children[o]:(u=new sa(this._mainRule.clone(),ia.cloneArr(this._rulesWithParentScopes)),this._children[o]=u),u.insert(t+1,l,a,r,i,s)}_doInsertHere(t,n,a,r,i){if(n===null){this._mainRule.acceptOverwrite(t,a,r,i);return}for(let s=0,c=this._rulesWithParentScopes.length;s>>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,n,a,r,i,s,c){let o=ie.getLanguageId(t),l=ie.getTokenType(t),u=ie.containsBalancedBrackets(t)?1:0,p=ie.getFontStyle(t),d=ie.getForeground(t),g=ie.getBackground(t);return n!==0&&(o=n),a!==8&&(l=a),r!==null&&(u=r?1:0),i!==-1&&(p=i),s!==0&&(d=s),c!==0&&(g=c),(o<<0|l<<8|u<<10|p<<11|d<<15|g<<24)>>>0}};function bn(e,t){const n=[],a=fc(e);let r=a.next();for(;r!==null;){let o=0;if(r.length===2&&r.charAt(1)===":"){switch(r.charAt(0)){case"R":o=1;break;case"L":o=-1;break;default:console.log(`Unknown priority ${r} in scope selector`)}r=a.next()}let l=s();if(n.push({matcher:l,priority:o}),r!==",")break;r=a.next()}return n;function i(){if(r==="-"){r=a.next();const o=i();return l=>!!o&&!o(l)}if(r==="("){r=a.next();const o=c();return r===")"&&(r=a.next()),o}if(pr(r)){const o=[];do o.push(r),r=a.next();while(pr(r));return l=>t(o,l)}return null}function s(){const o=[];let l=i();for(;l;)o.push(l),l=i();return u=>o.every(p=>p(u))}function c(){const o=[];let l=s();for(;l&&(o.push(l),r==="|"||r===",");){do r=a.next();while(r==="|"||r===",");l=s()}return u=>o.some(p=>p(u))}}function pr(e){return!!e&&!!e.match(/[\w\.:]+/)}function fc(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=t.exec(e);return{next:()=>{if(!n)return null;const a=n[0];return n=t.exec(e),a}}}function Ci(e){typeof e.dispose=="function"&&e.dispose()}var Nt=class{constructor(e){this.scopeName=e}toKey(){return this.scopeName}},bc=class{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}},_c=class{_references=[];_seenReferenceKeys=new Set;get references(){return this._references}visitedRule=new Set;add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}},yc=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new Nt(this.initialScopeName)]}seenFullScopeRequests=new Set;seenPartialScopeRequests=new Set;Q;processQueue(){const e=this.Q;this.Q=[];const t=new _c;for(const n of e)vc(n,this.initialScopeName,this.repo,t);for(const n of t.references)if(n instanceof Nt){if(this.seenFullScopeRequests.has(n.scopeName))continue;this.seenFullScopeRequests.add(n.scopeName),this.Q.push(n)}else{if(this.seenFullScopeRequests.has(n.scopeName)||this.seenPartialScopeRequests.has(n.toKey()))continue;this.seenPartialScopeRequests.add(n.toKey()),this.Q.push(n)}}};function vc(e,t,n,a){const r=n.lookup(e.scopeName);if(!r){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const i=n.lookup(t);e instanceof Nt?dn({baseGrammar:i,selfGrammar:r},a):oa(e.ruleName,{baseGrammar:i,selfGrammar:r,repository:r.repository},a);const s=n.injections(e.scopeName);if(s)for(const c of s)a.add(new Nt(c))}function oa(e,t,n){if(t.repository&&t.repository[e]){const a=t.repository[e];_n([a],t,n)}}function dn(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&_n(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&_n(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function _n(e,t,n){for(const a of e){if(n.visitedRule.has(a))continue;n.visitedRule.add(a);const r=a.repository?fi({},t.repository,a.repository):t.repository;Array.isArray(a.patterns)&&_n(a.patterns,{...t,repository:r},n);const i=a.include;if(!i)continue;const s=Fi(i);switch(s.kind){case 0:dn({...t,selfGrammar:t.baseGrammar},n);break;case 1:dn(t,n);break;case 2:oa(s.ruleName,{...t,repository:r},n);break;case 3:case 4:const c=s.scopeName===t.selfGrammar.scopeName?t.selfGrammar:s.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(c){const o={baseGrammar:t.baseGrammar,selfGrammar:c,repository:r};s.kind===4?oa(s.ruleName,o,n):dn(o,n)}else s.kind===4?n.add(new bc(s.scopeName,s.ruleName)):n.add(new Nt(s.scopeName));break}}}var wc=class{kind=0},xc=class{kind=1},kc=class{constructor(e){this.ruleName=e}kind=2},Cc=class{constructor(e){this.scopeName=e}kind=3},Fc=class{constructor(e,t){this.scopeName=e,this.ruleName=t}kind=4};function Fi(e){if(e==="$base")return new wc;if(e==="$self")return new xc;const t=e.indexOf("#");if(t===-1)return new Cc(e);if(t===0)return new kc(e.substring(1));{const n=e.substring(0,t),a=e.substring(t+1);return new Fc(n,a)}}var Ec=/\\(\d+)/,dr=/\\(\d+)/g,$c=-1,Ei=-2;var zt=class{$location;id;_nameIsCapturing;_name;_contentNameIsCapturing;_contentName;constructor(e,t,n,a){this.$location=e,this.id=t,this._name=n||null,this._nameIsCapturing=an.hasCaptures(this._name),this._contentName=a||null,this._contentNameIsCapturing=an.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${bi(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:an.replaceCaptures(this._name,e,t)}getContentName(e,t){return!this._contentNameIsCapturing||this._contentName===null?this._contentName:an.replaceCaptures(this._contentName,e,t)}},jc=class extends zt{retokenizeCapturedWithRuleId;constructor(e,t,n,a,r){super(e,t,n,a),this.retokenizeCapturedWithRuleId=r}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,n,a){throw new Error("Not supported!")}},Sc=class extends zt{_match;captures;_cachedCompiledPatterns;constructor(e,t,n,a,r){super(e,t,n,null),this._match=new It(a,this.id),this.captures=r,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e).compileAG(e,n,a)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Ot,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},mr=class extends zt{hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,a,r){super(e,t,n,a),this.patterns=r.patterns,this.hasMissingPatterns=r.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(const n of this.patterns)e.getRule(n).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e).compileAG(e,n,a)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new Ot,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}},ca=class extends zt{_begin;beginCaptures;_end;endHasBackReferences;endCaptures;applyEndPatternLast;hasMissingPatterns;patterns;_cachedCompiledPatterns;constructor(e,t,n,a,r,i,s,c,o,l){super(e,t,n,a),this._begin=new It(r,this.id),this.beginCaptures=i,this._end=new It(s||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=c,this.applyEndPatternLast=o||!1,this.patterns=l.patterns,this.hasMissingPatterns=l.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(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e,t).compileAG(e,n,a)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Ot;for(const n of this.patterns)e.getRule(n).collectPatterns(e,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,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}},yn=class extends zt{_begin;beginCaptures;whileCaptures;_while;whileHasBackReferences;hasMissingPatterns;patterns;_cachedCompiledPatterns;_cachedCompiledWhilePatterns;constructor(e,t,n,a,r,i,s,c,o){super(e,t,n,a),this._begin=new It(r,this.id),this.beginCaptures=i,this.whileCaptures=c,this._while=new It(s,Ei),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=o.patterns,this.hasMissingPatterns=o.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(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,a){return this._getCachedCompiledPatterns(e).compileAG(e,n,a)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new Ot;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,n,a){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,n,a)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new Ot,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"￿"),this._cachedCompiledWhilePatterns}},$i=class X{static createCaptureRule(t,n,a,r,i){return t.registerRule(s=>new jc(n,s,a,r,i))}static getCompiledRuleId(t,n,a){return t.id||n.registerRule(r=>{if(t.id=r,t.match)return new Sc(t.$vscodeTextmateLocation,t.id,t.name,t.match,X._compileCaptures(t.captures,n,a));if(typeof t.begin>"u"){t.repository&&(a=fi({},a,t.repository));let i=t.patterns;return typeof i>"u"&&t.include&&(i=[{include:t.include}]),new mr(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,X._compilePatterns(i,n,a))}return t.while?new yn(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,X._compileCaptures(t.beginCaptures||t.captures,n,a),t.while,X._compileCaptures(t.whileCaptures||t.captures,n,a),X._compilePatterns(t.patterns,n,a)):new ca(t.$vscodeTextmateLocation,t.id,t.name,t.contentName,t.begin,X._compileCaptures(t.beginCaptures||t.captures,n,a),t.end,X._compileCaptures(t.endCaptures||t.captures,n,a),t.applyEndPatternLast,X._compilePatterns(t.patterns,n,a))}),t.id}static _compileCaptures(t,n,a){let r=[];if(t){let i=0;for(const s in t){if(s==="$vscodeTextmateLocation")continue;const c=parseInt(s,10);c>i&&(i=c)}for(let s=0;s<=i;s++)r[s]=null;for(const s in t){if(s==="$vscodeTextmateLocation")continue;const c=parseInt(s,10);let o=0;t[s].patterns&&(o=X.getCompiledRuleId(t[s],n,a)),r[c]=X.createCaptureRule(n,t[s].$vscodeTextmateLocation,t[s].name,t[s].contentName,o)}}return r}static _compilePatterns(t,n,a){let r=[];if(t)for(let i=0,s=t.length;it.substring(r.start,r.end));return dr.lastIndex=0,this.source.replace(dr,(r,i)=>vi(a[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=[],n=[],a=[],r=[],i,s,c,o;for(i=0,s=this.source.length;in.source);this._cached=new hr(e,t,this._items.map(n=>n.ruleId))}return this._cached}compileAG(e,t,n){return this._hasAnchors?t?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,n){let a=this._items.map(r=>r.resolveAnchors(t,n));return new hr(e,a,this._items.map(r=>r.ruleId))}},hr=class{constructor(e,t,n){this.regExps=t,this.rules=n,this.scanner=e.createOnigScanner(t)}scanner;dispose(){typeof this.scanner.dispose=="function"&&this.scanner.dispose()}toString(){const e=[];for(let t=0,n=this.rules.length;t{const n=this._scopeToLanguage(t),a=this._toStandardTokenType(t);return new Gn(n,a)});_scopeToLanguage(t){return this._embeddedLanguagesMatcher.match(t)||0}_toStandardTokenType(t){const n=t.match(la.STANDARD_TOKEN_TYPE_REGEXP);if(!n)return 8;switch(n[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!")}static STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/},Rc=class{values;scopesRegExp;constructor(e){if(e.length===0)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map(([n,a])=>vi(n));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])}},gr=class{constructor(e,t){this.stack=e,this.stoppedEarly=t}};function Si(e,t,n,a,r,i,s,c){const o=t.content.length;let l=!1,u=-1;if(s){const g=Tc(e,t,n,a,r,i);r=g.stack,a=g.linePos,n=g.isFirstLine,u=g.anchorPosition}const p=Date.now();for(;!l;){if(c!==0&&Date.now()-p>c)return new gr(r,!0);d()}return new gr(r,!1);function d(){const g=Nc(e,t,n,a,r,u);if(!g){i.produce(r,o),l=!0;return}const m=g.captureIndices,v=g.matchedRuleId,_=m&&m.length>0?m[0].end>a:!1;if(v===$c){const y=r.getRule(e);i.produce(r,m[0].start),r=r.withContentNameScopesList(r.nameScopesList),Ft(e,t,n,r,i,y.endCaptures,m),i.produce(r,m[0].end);const b=r;if(r=r.parent,u=b.getAnchorPos(),!_&&b.getEnterPos()===a){r=b,i.produce(r,o),l=!0;return}}else{const y=e.getRule(v);i.produce(r,m[0].start);const b=r,x=y.getName(t.content,m),h=r.contentNameScopesList.pushAttributed(x,e);if(r=r.push(v,a,u,m[0].end===o,null,h,h),y instanceof ca){const C=y;Ft(e,t,n,r,i,C.beginCaptures,m),i.produce(r,m[0].end),u=m[0].end;const k=C.getContentName(t.content,m),S=h.pushAttributed(k,e);if(r=r.withContentNameScopesList(S),C.endHasBackReferences&&(r=r.withEndRule(C.getEndWithResolvedBackReferences(t.content,m))),!_&&b.hasSameRuleAs(r)){r=r.pop(),i.produce(r,o),l=!0;return}}else if(y instanceof yn){const C=y;Ft(e,t,n,r,i,C.beginCaptures,m),i.produce(r,m[0].end),u=m[0].end;const k=C.getContentName(t.content,m),S=h.pushAttributed(k,e);if(r=r.withContentNameScopesList(S),C.whileHasBackReferences&&(r=r.withEndRule(C.getWhileWithResolvedBackReferences(t.content,m))),!_&&b.hasSameRuleAs(r)){r=r.pop(),i.produce(r,o),l=!0;return}}else if(Ft(e,t,n,r,i,y.captures,m),i.produce(r,m[0].end),r=r.pop(),!_){r=r.safePop(),i.produce(r,o),l=!0;return}}m[0].end>a&&(a=m[0].end,n=!1)}}function Tc(e,t,n,a,r,i){let s=r.beginRuleCapturedEOL?0:-1;const c=[];for(let o=r;o;o=o.pop()){const l=o.getRule(e);l instanceof yn&&c.push({rule:l,stack:o})}for(let o=c.pop();o;o=c.pop()){const{ruleScanner:l,findOptions:u}=Lc(o.rule,e,o.stack.endRule,n,a===s),p=l.findNextMatchSync(t,a,u);if(p){if(p.ruleId!==Ei){r=o.stack.pop();break}p.captureIndices&&p.captureIndices.length&&(i.produce(o.stack,p.captureIndices[0].start),Ft(e,t,n,o.stack,i,o.rule.whileCaptures,p.captureIndices),i.produce(o.stack,p.captureIndices[0].end),s=p.captureIndices[0].end,p.captureIndices[0].end>a&&(a=p.captureIndices[0].end,n=!1))}else{r=o.stack.pop();break}}return{stack:r,linePos:a,anchorPosition:s,isFirstLine:n}}function Nc(e,t,n,a,r,i){const s=Ic(e,t,n,a,r,i),c=e.getInjections();if(c.length===0)return s;const o=Oc(c,e,t,n,a,r,i);if(!o)return s;if(!s)return o;const l=s.captureIndices[0].start,u=o.captureIndices[0].start;return u=c)&&(c=x,o=b.captureIndices,l=b.ruleId,u=m.priority,c===r))break}return o?{priorityMatch:u===-1,captureIndices:o,matchedRuleId:l}:null}function Ai(e,t,n,a,r){return{ruleScanner:e.compileAG(t,n,a,r),findOptions:0}}function Lc(e,t,n,a,r){return{ruleScanner:e.compileWhileAG(t,n,a,r),findOptions:0}}function Ft(e,t,n,a,r,i,s){if(i.length===0)return;const c=t.content,o=Math.min(i.length,s.length),l=[],u=s[0].end;for(let p=0;pu)break;for(;l.length>0&&l[l.length-1].endPos<=g.start;)r.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop();if(l.length>0?r.produceFromScopes(l[l.length-1].scopes,g.start):r.produce(a,g.start),d.retokenizeCapturedWithRuleId){const v=d.getName(c,s),_=a.contentNameScopesList.pushAttributed(v,e),y=d.getContentName(c,s),b=_.pushAttributed(y,e),x=a.push(d.retokenizeCapturedWithRuleId,g.start,-1,!1,null,_,b),h=e.createOnigString(c.substring(0,g.end));Si(e,h,n&&g.start===0,g.start,x,r,!1,0),Ci(h);continue}const m=d.getName(c,s);if(m!==null){const _=(l.length>0?l[l.length-1].scopes:a.contentNameScopesList).pushAttributed(m,e);l.push(new Dc(_,g.end))}}for(;l.length>0;)r.produceFromScopes(l[l.length-1].scopes,l[l.length-1].endPos),l.pop()}var Dc=class{scopes;endPos;constructor(e,t){this.scopes=e,this.endPos=t}};function Pc(e,t,n,a,r,i,s,c){return new Mc(e,t,n,a,r,i,s,c)}function fr(e,t,n,a,r){const i=bn(t,vn),s=$i.getCompiledRuleId(n,a,r.repository);for(const c of i)e.push({debugSelector:t,matcher:c.matcher,ruleId:s,grammar:r,priority:c.priority})}function vn(e,t){if(t.length{for(let r=n;rn&&e.substr(0,n)===t&&e[n]==="."}var Mc=class{constructor(e,t,n,a,r,i,s,c){if(this._rootScopeName=e,this.balancedBracketSelectors=i,this._onigLib=c,this._basicScopeAttributesProvider=new Ac(n,a),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=s,this._grammar=br(t,null),this._injections=null,this._tokenTypeMatchers=[],r)for(const o of Object.keys(r)){const l=bn(o,vn);for(const u of l)this._tokenTypeMatchers.push({matcher:u.matcher,type:r[o]})}}_rootId;_lastRuleId;_ruleId2desc;_includedGrammars;_grammarRepository;_grammar;_injections;_basicScopeAttributesProvider;_tokenTypeMatchers;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:r=>r===this._rootScopeName?this._grammar:this.getExternalGrammar(r),injections:r=>this._grammarRepository.injections(r)},t=[],n=this._rootScopeName,a=e.lookup(n);if(a){const r=a.injections;if(r)for(let s in r)fr(t,s,r[s],this,a);const i=this._grammarRepository.injections(n);i&&i.forEach(s=>{const c=this.getExternalGrammar(s);if(c){const o=c.injectionSelector;o&&fr(t,o,c,this,c)}})}return t.sort((r,i)=>r.priority-i.priority),t}getInjections(){return this._injections===null&&(this._injections=this._collectInjections()),this._injections}registerRule(e){const t=++this._lastRuleId,n=e(t);return this._ruleId2desc[t]=n,n}getRule(e){return this._ruleId2desc[e]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const n=this._grammarRepository.lookup(e);if(n)return this._includedGrammars[e]=br(n,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,n=0){const a=this._tokenize(e,t,!1,n);return{tokens:a.lineTokens.getResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}tokenizeLine2(e,t,n=0){const a=this._tokenize(e,t,!0,n);return{tokens:a.lineTokens.getBinaryResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}_tokenize(e,t,n,a){this._rootId===-1&&(this._rootId=$i.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository),this.getInjections());let r;if(!t||t===ua.NULL){r=!0;const l=this._basicScopeAttributesProvider.getDefaultAttributes(),u=this.themeProvider.getDefaults(),p=mt.set(0,l.languageId,l.tokenType,null,u.fontStyle,u.foregroundId,u.backgroundId),d=this.getRule(this._rootId).getName(null,null);let g;d?g=St.createRootAndLookUpScopeName(d,p,this):g=St.createRoot("unknown",p),t=new ua(null,this._rootId,-1,-1,!1,null,g,g)}else r=!1,t.reset();e=e+` `;const i=this.createOnigString(e),s=i.content.length,c=new Bc(n,e,this._tokenTypeMatchers,this.balancedBracketSelectors),o=Si(this,i,r,0,t,c,!0,a);return Ci(i),{lineLength:s,lineTokens:c,ruleStack:o.stack,stoppedEarly:o.stoppedEarly}}};function br(e,t){return e=ic(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 St=class be{constructor(t,n,a){this.parent=t,this.scopePath=n,this.tokenAttributes=a}static fromExtension(t,n){let a=t,r=t?.scopePath??null;for(const i of n)r=Bn.push(r,i.scopeNames),a=new be(a,r,i.encodedTokenAttributes);return a}static createRoot(t,n){return new be(null,new Bn(null,t),n)}static createRootAndLookUpScopeName(t,n,a){const r=a.getMetadataForScope(t),i=new Bn(null,t),s=a.themeProvider.themeMatch(i),c=be.mergeAttributes(n,r,s);return new be(null,i,c)}get scopeName(){return this.scopePath.scopeName}toString(){return this.getScopeNames().join(" ")}equals(t){return be.equals(this,t)}static equals(t,n){do{if(t===n||!t&&!n)return!0;if(!t||!n||t.scopeName!==n.scopeName||t.tokenAttributes!==n.tokenAttributes)return!1;t=t.parent,n=n.parent}while(!0)}static mergeAttributes(t,n,a){let r=-1,i=0,s=0;return a!==null&&(r=a.fontStyle,i=a.foregroundId,s=a.backgroundId),mt.set(t,n.languageId,n.tokenType,null,r,i,s)}pushAttributed(t,n){if(t===null)return this;if(t.indexOf(" ")===-1)return be._pushAttributed(this,t,n);const a=t.split(/ /g);let r=this;for(const i of a)r=be._pushAttributed(r,i,n);return r}static _pushAttributed(t,n,a){const r=a.getMetadataForScope(n),i=t.scopePath.push(n),s=a.themeProvider.themeMatch(i),c=be.mergeAttributes(t.tokenAttributes,r,s);return new be(t,i,c)}getScopeNames(){return this.scopePath.getSegments()}getExtensionIfDefined(t){const n=[];let a=this;for(;a&&a!==t;)n.push({encodedTokenAttributes:a.tokenAttributes,scopeNames:a.scopePath.getExtensionIfDefined(a.parent?.scopePath??null)}),a=a.parent;return a===t?n.reverse():void 0}},ua=class Be{constructor(t,n,a,r,i,s,c,o){this.parent=t,this.ruleId=n,this.beginRuleCapturedEOL=i,this.endRule=s,this.nameScopesList=c,this.contentNameScopesList=o,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=a,this._anchorPos=r}_stackElementBrand=void 0;static NULL=new Be(null,0,0,0,!1,null,null,null);_enterPos;_anchorPos;depth;equals(t){return t===null?!1:Be._equals(this,t)}static _equals(t,n){return t===n?!0:this._structuralEquals(t,n)?St.equals(t.contentNameScopesList,n.contentNameScopesList):!1}static _structuralEquals(t,n){do{if(t===n||!t&&!n)return!0;if(!t||!n||t.depth!==n.depth||t.ruleId!==n.ruleId||t.endRule!==n.endRule)return!1;t=t.parent,n=n.parent}while(!0)}clone(){return this}static _reset(t){for(;t;)t._enterPos=-1,t._anchorPos=-1,t=t.parent}reset(){Be._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(t,n,a,r,i,s,c){return new Be(this,t,n,a,r,i,s,c)}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,n){return this.parent&&(n=this.parent._writeString(t,n)),t[n++]=`(${this.ruleId}, ${this.nameScopesList?.toString()}, ${this.contentNameScopesList?.toString()})`,n}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 Be(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,t,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(t){let n=this;for(;n&&n._enterPos===t._enterPos;){if(n.ruleId===t.ruleId)return!0;n=n.parent}return!1}toStateStackFrame(){return{ruleId:this.ruleId,beginRuleCapturedEOL:this.beginRuleCapturedEOL,endRule:this.endRule,nameScopesList:this.nameScopesList?.getExtensionIfDefined(this.parent?.nameScopesList??null)??[],contentNameScopesList:this.contentNameScopesList?.getExtensionIfDefined(this.nameScopesList)??[]}}static pushFrame(t,n){const a=St.fromExtension(t?.nameScopesList??null,n.nameScopesList);return new Be(t,n.ruleId,n.enterPos??-1,n.anchorPos??-1,n.beginRuleCapturedEOL,n.endRule,a,St.fromExtension(a,n.contentNameScopesList))}},zc=class{balancedBracketScopes;unbalancedBracketScopes;allowAny=!1;constructor(e,t){this.balancedBracketScopes=e.flatMap(n=>n==="*"?(this.allowAny=!0,[]):bn(n,vn).map(a=>a.matcher)),this.unbalancedBracketScopes=t.flatMap(n=>bn(n,vn).map(a=>a.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}},Bc=class{constructor(e,t,n,a){this.balancedBracketSelectors=a,this._emitBinaryTokens=e,this._tokenTypeOverrides=n,this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}_emitBinaryTokens;_lineText;_tokens;_binaryTokens;_lastTokenEndIndex;_tokenTypeOverrides;produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let a=e?.tokenAttributes??0,r=!1;if(this.balancedBracketSelectors?.matchesAlways&&(r=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const i=e?.getScopeNames()??[];for(const s of this._tokenTypeOverrides)s.matcher(i)&&(a=mt.set(a,0,s.type,null,-1,0,0));this.balancedBracketSelectors&&(r=this.balancedBracketSelectors.match(i))}if(r&&(a=mt.set(a,0,8,r,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===a){this._lastTokenEndIndex=t;return}this._binaryTokens.push(this._lastTokenEndIndex),this._binaryTokens.push(a),this._lastTokenEndIndex=t;return}const n=e?.getScopeNames()??[];this._tokens.push({startIndex:this._lastTokenEndIndex,endIndex:t,scopes:n}),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 n=new Uint32Array(this._binaryTokens.length);for(let a=0,r=this._binaryTokens.length;a0;)s.Q.map(c=>this._loadSingleGrammar(c.scopeName)),s.processQueue();return this._grammarForScopeName(t,n,a,r,i)}_loadSingleGrammar(t){this._ensureGrammarCache.has(t)||(this._doLoadSingleGrammar(t),this._ensureGrammarCache.set(t,!0))}_doLoadSingleGrammar(t){const n=this._options.loadGrammar(t);if(n){const a=typeof this._options.getInjections=="function"?this._options.getInjections(t):void 0;this._syncRegistry.addGrammar(n,a)}}addGrammar(t,n=[],a=0,r=null){return this._syncRegistry.addGrammar(t,n),this._grammarForScopeName(t.scopeName,a,r)}_grammarForScopeName(t,n=0,a=null,r=null,i=null){return this._syncRegistry.grammarForScopeName(t,n,a,r,i)}},pa=ua.NULL;const Hc=["area","base","basefont","bgsound","br","col","command","embed","frame","hr","image","img","input","keygen","link","meta","param","source","track","wbr"];class Bt{constructor(t,n,a){this.normal=n,this.property=t,a&&(this.space=a)}}Bt.prototype.normal={};Bt.prototype.property={};Bt.prototype.space=void 0;function Ri(e,t){const n={},a={};for(const r of e)Object.assign(n,r.property),Object.assign(a,r.normal);return new Bt(n,a,t)}function da(e){return e.toLowerCase()}class te{constructor(t,n){this.attribute=n,this.property=t}}te.prototype.attribute="";te.prototype.booleanish=!1;te.prototype.boolean=!1;te.prototype.commaOrSpaceSeparated=!1;te.prototype.commaSeparated=!1;te.prototype.defined=!1;te.prototype.mustUseProperty=!1;te.prototype.number=!1;te.prototype.overloadedBoolean=!1;te.prototype.property="";te.prototype.spaceSeparated=!1;te.prototype.space=void 0;let Wc=0;const j=Ye(),G=Ye(),ma=Ye(),w=Ye(),L=Ye(),ot=Ye(),ne=Ye();function Ye(){return 2**++Wc}const ha=Object.freeze(Object.defineProperty({__proto__:null,boolean:j,booleanish:G,commaOrSpaceSeparated:ne,commaSeparated:ot,number:w,overloadedBoolean:ma,spaceSeparated:L},Symbol.toStringTag,{value:"Module"})),Un=Object.keys(ha);class Ta extends te{constructor(t,n,a,r){let i=-1;if(super(t,n),_r(this,"space",r),typeof a=="number")for(;++i4&&n.slice(0,4)==="data"&&Xc.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(yr,Jc);a="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!yr.test(i)){let s=i.replace(Yc,Qc);s.charAt(0)!=="-"&&(s="-"+s),t="data"+s}}r=Ta}return new r(a,t)}function Qc(e){return"-"+e.toLowerCase()}function Jc(e){return e.charAt(1).toUpperCase()}const el=Ri([Ti,Vc,Oi,Li,Di],"html"),Pi=Ri([Ti,Zc,Oi,Li,Di],"svg"),vr={}.hasOwnProperty;function tl(e,t){const n=t||{};function a(r,...i){let s=a.invalid;const c=a.handlers;if(r&&vr.call(r,e)){const o=String(r[e]);s=vr.call(c,o)?c[o]:a.unknown}if(s)return s.call(this,r,...i)}return a.handlers=n.handlers||{},a.invalid=n.invalid,a.unknown=n.unknown,a}const nl=/["&'<>`]/g,al=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,rl=/[\x01-\t\v\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,il=/[|\\{}()[\]^$+*?.]/g,wr=new WeakMap;function sl(e,t){if(e=e.replace(t.subset?ol(t.subset):nl,a),t.subset||t.escapeOnly)return e;return e.replace(al,n).replace(rl,a);function n(r,i,s){return t.format((r.charCodeAt(0)-55296)*1024+r.charCodeAt(1)-56320+65536,s.charCodeAt(i+2),t)}function a(r,i,s){return t.format(r.charCodeAt(0),s.charCodeAt(i+1),t)}}function ol(e){let t=wr.get(e);return t||(t=cl(e),wr.set(e,t)),t}function cl(e){const t=[];let n=-1;for(;++n",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:"€"},hl=["cent","copy","divide","gt","lt","not","para","times"],qi={}.hasOwnProperty,ga={};let rn;for(rn in Hn)qi.call(Hn,rn)&&(ga[Hn[rn]]=rn);const gl=/[^\dA-Za-z]/;function fl(e,t,n,a){const r=String.fromCharCode(e);if(qi.call(ga,r)){const i=ga[r],s="&"+i;return n&&ml.includes(i)&&!hl.includes(i)&&(!a||t&&t!==61&&gl.test(String.fromCharCode(t)))?s:s+";"}return""}function bl(e,t,n){let a=ul(e,t,n.omitOptionalSemicolons),r;if((n.useNamedReferences||n.useShortestReferences)&&(r=fl(e,t,n.omitOptionalSemicolons,n.attribute)),(n.useShortestReferences||!r)&&n.useShortestReferences){const i=dl(e,t,n.omitOptionalSemicolons);i.length|^->||--!>|"],vl=["<",">"];function wl(e,t,n,a){return a.settings.bogusComments?"":"";function r(i){return ct(i,Object.assign({},a.settings.characterReferences,{subset:vl}))}}function xl(e,t,n,a){return""}function xr(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let a=0,r=n.indexOf(t);for(;r!==-1;)a++,r=n.indexOf(t,r+t.length);return a}function kl(e,t){const n=t||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}function Cl(e){return e.join(" ").trim()}const Fl=/[ \t\n\f\r]/g;function Na(e){return typeof e=="object"?e.type==="text"?kr(e.value):!1:kr(e)}function kr(e){return e.replace(Fl,"")===""}const H=zi(1),Mi=zi(-1),El=[];function zi(e){return t;function t(n,a,r){const i=n?n.children:El;let s=(a||0)+e,c=i[s];if(!r)for(;c&&Na(c);)s+=e,c=i[s];return c}}const $l={}.hasOwnProperty;function Bi(e){return t;function t(n,a,r){return $l.call(e,n.tagName)&&e[n.tagName](n,a,r)}}const Ia=Bi({body:Sl,caption:Wn,colgroup:Wn,dd:Nl,dt:Tl,head:Wn,html:jl,li:Rl,optgroup:Il,option:Ol,p:Al,rp:Cr,rt:Cr,tbody:Dl,td:Fr,tfoot:Pl,th:Fr,thead:Ll,tr:ql});function Wn(e,t,n){const a=H(n,t,!0);return!a||a.type!=="comment"&&!(a.type==="text"&&Na(a.value.charAt(0)))}function jl(e,t,n){const a=H(n,t);return!a||a.type!=="comment"}function Sl(e,t,n){const a=H(n,t);return!a||a.type!=="comment"}function Al(e,t,n){const a=H(n,t);return a?a.type==="element"&&(a.tagName==="address"||a.tagName==="article"||a.tagName==="aside"||a.tagName==="blockquote"||a.tagName==="details"||a.tagName==="div"||a.tagName==="dl"||a.tagName==="fieldset"||a.tagName==="figcaption"||a.tagName==="figure"||a.tagName==="footer"||a.tagName==="form"||a.tagName==="h1"||a.tagName==="h2"||a.tagName==="h3"||a.tagName==="h4"||a.tagName==="h5"||a.tagName==="h6"||a.tagName==="header"||a.tagName==="hgroup"||a.tagName==="hr"||a.tagName==="main"||a.tagName==="menu"||a.tagName==="nav"||a.tagName==="ol"||a.tagName==="p"||a.tagName==="pre"||a.tagName==="section"||a.tagName==="table"||a.tagName==="ul"):!n||!(n.type==="element"&&(n.tagName==="a"||n.tagName==="audio"||n.tagName==="del"||n.tagName==="ins"||n.tagName==="map"||n.tagName==="noscript"||n.tagName==="video"))}function Rl(e,t,n){const a=H(n,t);return!a||a.type==="element"&&a.tagName==="li"}function Tl(e,t,n){const a=H(n,t);return!!(a&&a.type==="element"&&(a.tagName==="dt"||a.tagName==="dd"))}function Nl(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagName==="dt"||a.tagName==="dd")}function Cr(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagName==="rp"||a.tagName==="rt")}function Il(e,t,n){const a=H(n,t);return!a||a.type==="element"&&a.tagName==="optgroup"}function Ol(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagName==="option"||a.tagName==="optgroup")}function Ll(e,t,n){const a=H(n,t);return!!(a&&a.type==="element"&&(a.tagName==="tbody"||a.tagName==="tfoot"))}function Dl(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagName==="tbody"||a.tagName==="tfoot")}function Pl(e,t,n){return!H(n,t)}function ql(e,t,n){const a=H(n,t);return!a||a.type==="element"&&a.tagName==="tr"}function Fr(e,t,n){const a=H(n,t);return!a||a.type==="element"&&(a.tagName==="td"||a.tagName==="th")}const Ml=Bi({body:Gl,colgroup:Ul,head:Bl,html:zl,tbody:Hl});function zl(e){const t=H(e,-1);return!t||t.type!=="comment"}function Bl(e){const t=new Set;for(const a of e.children)if(a.type==="element"&&(a.tagName==="base"||a.tagName==="title")){if(t.has(a.tagName))return!1;t.add(a.tagName)}const n=e.children[0];return!n||n.type==="element"}function Gl(e){const t=H(e,-1,!0);return!t||t.type!=="comment"&&!(t.type==="text"&&Na(t.value.charAt(0)))&&!(t.type==="element"&&(t.tagName==="meta"||t.tagName==="link"||t.tagName==="script"||t.tagName==="style"||t.tagName==="template"))}function Ul(e,t,n){const a=Mi(n,t),r=H(e,-1,!0);return n&&a&&a.type==="element"&&a.tagName==="colgroup"&&Ia(a,n.children.indexOf(a),n)?!1:!!(r&&r.type==="element"&&r.tagName==="col")}function Hl(e,t,n){const a=Mi(n,t),r=H(e,-1);return n&&a&&a.type==="element"&&(a.tagName==="thead"||a.tagName==="tbody")&&Ia(a,n.children.indexOf(a),n)?!1:!!(r&&r.type==="element"&&r.tagName==="tr")}const sn={name:[[` \f\r &/=>`.split(""),` \f\r "&'/=>\``.split("")],[`\0 \f\r "&'/<=>`.split(""),`\0 \f\r "&'/<=>\``.split("")]],unquoted:[[` \f\r &>`.split(""),`\0 \f\r "&'<=>\``.split("")],[`\0 \f\r "&'<=>\``.split(""),`\0 \f\r "&'<=>\``.split("")]],single:[["&'".split(""),"\"&'`".split("")],["\0&'".split(""),"\0\"&'`".split("")]],double:[['"&'.split(""),"\"&'`".split("")],['\0"&'.split(""),"\0\"&'`".split("")]]};function Wl(e,t,n,a){const r=a.schema,i=r.space==="svg"?!1:a.settings.omitOptionalTags;let s=r.space==="svg"?a.settings.closeEmptyElements:a.settings.voids.includes(e.tagName.toLowerCase());const c=[];let o;r.space==="html"&&e.tagName==="svg"&&(a.schema=Pi);const l=Vl(a,e.properties),u=a.all(r.space==="html"&&e.tagName==="template"?e.content:e);return a.schema=r,u&&(s=!1),(l||!i||!Ml(e,t,n))&&(c.push("<",e.tagName,l?" "+l:""),s&&(r.space==="svg"||a.settings.closeSelfClosing)&&(o=l.charAt(l.length-1),(!a.settings.tightSelfClosing||o==="/"||o&&o!=='"'&&o!=="'")&&c.push(" "),c.push("/")),c.push(">")),c.push(u),!s&&(!i||!Ia(e,t,n))&&c.push(""),c.join("")}function Vl(e,t){const n=[];let a=-1,r;if(t){for(r in t)if(t[r]!==null&&t[r]!==void 0){const i=Zl(e,r,t[r]);i&&n.push(i)}}for(;++axr(n,e.alternative)&&(s=e.alternative),c=s+ct(n,Object.assign({},e.settings.characterReferences,{subset:(s==="'"?sn.single:sn.double)[r][i],attribute:!0}))+s),o+(c&&"="+c))}const Yl=["<","&"];function Gi(e,t,n,a){return n&&n.type==="element"&&(n.tagName==="script"||n.tagName==="style")?e.value:ct(e.value,Object.assign({},a.settings.characterReferences,{subset:Yl}))}function Xl(e,t,n,a){return a.settings.allowDangerousHtml?e.value:Gi(e,t,n,a)}function Kl(e,t,n,a){return a.all(e)}const Ql=tl("type",{invalid:Jl,unknown:eu,handlers:{comment:wl,doctype:xl,element:Wl,raw:Xl,root:Kl,text:Gi}});function Jl(e){throw new Error("Expected node, not `"+e+"`")}function eu(e){const t=e;throw new Error("Cannot compile unknown node `"+t.type+"`")}const tu={},nu={},au=[];function ru(e,t){const n=t||tu,a=n.quote||'"',r=a==='"'?"'":'"';if(a!=='"'&&a!=="'")throw new Error("Invalid quote `"+a+"`, expected `'` or `\"`");return{one:iu,all:su,settings:{omitOptionalTags:n.omitOptionalTags||!1,allowParseErrors:n.allowParseErrors||!1,allowDangerousCharacters:n.allowDangerousCharacters||!1,quoteSmart:n.quoteSmart||!1,preferUnquoted:n.preferUnquoted||!1,tightAttributes:n.tightAttributes||!1,upperDoctype:n.upperDoctype||!1,tightDoctype:n.tightDoctype||!1,bogusComments:n.bogusComments||!1,tightCommaSeparatedLists:n.tightCommaSeparatedLists||!1,tightSelfClosing:n.tightSelfClosing||!1,collapseEmptyAttributes:n.collapseEmptyAttributes||!1,allowDangerousHtml:n.allowDangerousHtml||!1,voids:n.voids||Hc,characterReferences:n.characterReferences||nu,closeSelfClosing:n.closeSelfClosing||!1,closeEmptyElements:n.closeEmptyElements||!1},schema:n.space==="svg"?Pi:el,quote:a,alternative:r}.one(Array.isArray(e)?{type:"root",children:e}:e,void 0,void 0)}function iu(e,t,n){return Ql(e,t,n,this)}function su(e){const t=[],n=e&&e.children||au;let a=-1;for(;++at.default||t)}function Oa(e){return!e||["plaintext","txt","text","plain"].includes(e)}function cu(e){return e==="ansi"||Oa(e)}function La(e){return e==="none"}function lu(e){return La(e)}function Hi(e,t){if(!t)return e;e.properties||={},e.properties.class||=[],typeof e.properties.class=="string"&&(e.properties.class=e.properties.class.split(/\s+/g)),Array.isArray(e.properties.class)||(e.properties.class=[]);const n=Array.isArray(t)?t:t.split(/\s+/g);for(const a of n)a&&!e.properties.class.includes(a)&&e.properties.class.push(a);return e}function An(e,t=!1){const n=e.split(/(\r?\n)/g);let a=0;const r=[];for(let i=0;ir);function n(r){if(r===e.length)return{line:t.length-1,character:t[t.length-1].length};let i=r,s=0;for(const c of t){if(in&&a.push({...e,content:e.content.slice(n,r),offset:e.offset+n}),n=r;return na-r);return n.length?e.map(a=>a.flatMap(r=>{const i=n.filter(s=>r.offsets-r.offset).sort((s,c)=>s-c);return i.length?du(r,i):r})):e}function hu(e,t,n,a,r="css-vars"){const i={content:e.content,explanation:e.explanation,offset:e.offset},s=t.map(u=>xn(e.variants[u])),c=new Set(s.flatMap(u=>Object.keys(u))),o={},l=(u,p)=>{const d=p==="color"?"":p==="background-color"?"-bg":`-${p}`;return n+t[u]+(p==="color"?"":d)};return s.forEach((u,p)=>{for(const d of c){const g=u[d]||"inherit";if(p===0&&a&&pu.includes(d))if(a===Da&&s.length>1){const m=t.findIndex(b=>b==="light"),v=t.findIndex(b=>b==="dark");if(m===-1||v===-1)throw new W('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');const _=s[m][d]||"inherit",y=s[v][d]||"inherit";o[d]=`light-dark(${_}, ${y})`,r==="css-vars"&&(o[l(p,d)]=g)}else o[d]=g;else r==="css-vars"&&(o[l(p,d)]=g)}}),i.htmlStyle=o,i}function xn(e){const t={};if(e.color&&(t.color=e.color),e.bgColor&&(t["background-color"]=e.bgColor),e.fontStyle){e.fontStyle&K.Italic&&(t["font-style"]="italic"),e.fontStyle&K.Bold&&(t["font-weight"]="bold");const n=[];e.fontStyle&K.Underline&&n.push("underline"),e.fontStyle&K.Strikethrough&&n.push("line-through"),n.length&&(t["text-decoration"]=n.join(" "))}return t}function fa(e){return typeof e=="string"?e:Object.entries(e).map(([t,n])=>`${t}:${n}`).join(";")}const Wi=new WeakMap;function Rn(e,t){Wi.set(e,t)}function Lt(e){return Wi.get(e)}class gt{_stacks={};lang;get themes(){return Object.keys(this._stacks)}get theme(){return this.themes[0]}get _stack(){return this._stacks[this.theme]}static initial(t,n){return new gt(Object.fromEntries(ou(n).map(a=>[a,pa])),t)}constructor(...t){if(t.length===2){const[n,a]=t;this.lang=a,this._stacks=n}else{const[n,a,r]=t;this.lang=a,this._stacks={[r]:n}}}getInternalStack(t=this.theme){return this._stacks[t]}getScopes(t=this.theme){return gu(this._stacks[t])}toJSON(){return{lang:this.lang,theme:this.theme,themes:this.themes,scopes:this.getScopes()}}}function gu(e){const t=[],n=new Set;function a(r){if(n.has(r))return;n.add(r);const i=r?.nameScopesList?.scopeName;i&&t.push(i),r.parent&&a(r.parent)}return a(e),t}function fu(e,t){if(!(e instanceof gt))throw new W("Invalid grammar state");return e.getInternalStack(t)}function bu(){const e=new WeakMap;function t(n){if(!e.has(n.meta)){let a=function(s){if(typeof s=="number"){if(s<0||s>n.source.length)throw new W(`Invalid decoration offset: ${s}. Code length: ${n.source.length}`);return{...r.indexToPos(s),offset:s}}else{const c=r.lines[s.line];if(c===void 0)throw new W(`Invalid decoration position ${JSON.stringify(s)}. Lines length: ${r.lines.length}`);let o=s.character;if(o<0&&(o=c.length+o),o<0||o>c.length)throw new W(`Invalid decoration position ${JSON.stringify(s)}. Line ${s.line} length: ${c.length}`);return{...s,character:o,offset:r.posToIndex(s.line,o)}}};const r=uu(n.source),i=(n.options.decorations||[]).map(s=>({...s,start:a(s.start),end:a(s.end)}));_u(i),e.set(n.meta,{decorations:i,converter:r,source:n.source})}return e.get(n.meta)}return{name:"shiki:decorations",tokens(n){if(!this.options.decorations?.length)return;const r=t(this).decorations.flatMap(s=>[s.start.offset,s.end.offset]);return mu(n,r)},code(n){if(!this.options.decorations?.length)return;const a=t(this),r=Array.from(n.children).filter(u=>u.type==="element"&&u.tagName==="span");if(r.length!==a.converter.lines.length)throw new W(`Number of lines in code element (${r.length}) does not match the number of lines in the source (${a.converter.lines.length}). Failed to apply decorations.`);function i(u,p,d,g){const m=r[u];let v="",_=-1,y=-1;if(p===0&&(_=0),d===0&&(y=0),d===Number.POSITIVE_INFINITY&&(y=m.children.length),_===-1||y===-1)for(let x=0;xv);return u.tagName=p.tagName||"span",u.properties={...u.properties,...g,class:u.properties.class},p.properties?.class&&Hi(u,p.properties.class),u=m(u,d)||u,u}const o=[],l=a.decorations.sort((u,p)=>p.start.offset-u.start.offset||u.end.offset-p.end.offset);for(const u of l){const{start:p,end:d}=u;if(p.line===d.line)i(p.line,p.character,d.character,u);else if(p.lines(g,u));i(d.line,0,d.character,u)}}o.forEach(u=>u())}}}function _u(e){for(let t=0;tn.end.offset)throw new W(`Invalid decoration range: ${JSON.stringify(n.start)} - ${JSON.stringify(n.end)}`);for(let a=t+1;aNumber.parseInt(a));return n.length!==3||n.some(a=>Number.isNaN(a))?void 0:{type:"rgb",rgb:n}}else if(t==="5"){const n=e.shift();if(n)return{type:"table",index:Number(n)}}}function xu(e){const t=[];for(;e.length>0;){const n=e.shift();if(!n)continue;const a=Number.parseInt(n);if(!Number.isNaN(a))if(a===0)t.push({type:"resetAll"});else if(a<=9)Vn[a]&&t.push({type:"setDecoration",value:Vn[a]});else if(a<=29){const r=Vn[a-20];r&&(t.push({type:"resetDecoration",value:r}),r==="dim"&&t.push({type:"resetDecoration",value:"bold"}))}else if(a<=37)t.push({type:"setForegroundColor",value:{type:"named",name:Ue[a-30]}});else if(a===38){const r=Er(e);r&&t.push({type:"setForegroundColor",value:r})}else if(a===39)t.push({type:"resetForegroundColor"});else if(a<=47)t.push({type:"setBackgroundColor",value:{type:"named",name:Ue[a-40]}});else if(a===48){const r=Er(e);r&&t.push({type:"setBackgroundColor",value:r})}else a===49?t.push({type:"resetBackgroundColor"}):a===53?t.push({type:"setDecoration",value:"overline"}):a===55?t.push({type:"resetDecoration",value:"overline"}):a>=90&&a<=97?t.push({type:"setForegroundColor",value:{type:"named",name:Ue[a-90+8]}}):a>=100&&a<=107&&t.push({type:"setBackgroundColor",value:{type:"named",name:Ue[a-100+8]}})}return t}function ku(){let e=null,t=null,n=new Set;return{parse(a){const r=[];let i=0;do{const s=wu(a,i),c=s.sequence?a.substring(i,s.startPosition):a.substring(i);if(c.length>0&&r.push({value:c,foreground:e,background:t,decorations:new Set(n)}),s.sequence){const o=xu(s.sequence);for(const l of o)l.type==="resetAll"?(e=null,t=null,n.clear()):l.type==="resetForegroundColor"?e=null:l.type==="resetBackgroundColor"?t=null:l.type==="resetDecoration"&&n.delete(l.value);for(const l of o)l.type==="setForegroundColor"?e=l.value:l.type==="setBackgroundColor"?t=l.value:l.type==="setDecoration"&&n.add(l.value)}i=s.position}while(iMath.max(0,Math.min(o,255)).toString(16).padStart(2,"0")).join("")}`}let a;function r(){if(a)return a;a=[];for(let l=0;l{const l=`terminal.ansi${o[0].toUpperCase()}${o.substring(1)}`,u=e.colors?.[l];return[o,u||Eu[o]]})),s=Fu(i),c=ku();return r.map(o=>c.parse(o[0]).map(l=>{let u,p;l.decorations.has("reverse")?(u=l.background?s.value(l.background):e.bg,p=l.foreground?s.value(l.foreground):e.fg):(u=l.foreground?s.value(l.foreground):e.fg,p=l.background?s.value(l.background):void 0),u=Ie(u,a),p=Ie(p,a),l.decorations.has("dim")&&(u=ju(u));let d=K.None;return l.decorations.has("bold")&&(d|=K.Bold),l.decorations.has("italic")&&(d|=K.Italic),l.decorations.has("underline")&&(d|=K.Underline),l.decorations.has("strikethrough")&&(d|=K.Strikethrough),{content:l.value,offset:o[1],color:u,bgColor:p,fontStyle:d}}))}function ju(e){const t=e.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/i);if(t)if(t[3]){const a=Math.round(Number.parseInt(t[3],16)/2).toString(16).padStart(2,"0");return`#${t[1]}${t[2]}${a}`}else return t[2]?`#${t[1]}${t[2]}80`:`#${Array.from(t[1]).map(a=>`${a}${a}`).join("")}80`;const n=e.match(/var\((--[\w-]+-ansi-[\w-]+)\)/);return n?`var(${n[1]}-dim)`:e}function Pa(e,t,n={}){const{lang:a="text",theme:r=e.getLoadedThemes()[0]}=n;if(Oa(a)||La(r))return An(t).map(o=>[{content:o[0],offset:o[1]}]);const{theme:i,colorMap:s}=e.setTheme(r);if(a==="ansi")return $u(i,t,n);const c=e.getLanguage(a);if(n.grammarState){if(n.grammarState.lang!==c.name)throw new W(`Grammar state language "${n.grammarState.lang}" does not match highlight language "${c.name}"`);if(!n.grammarState.themes.includes(i.name))throw new W(`Grammar state themes "${n.grammarState.themes}" do not contain highlight theme "${i.name}"`)}return Au(t,c,i,s,n)}function Su(...e){if(e.length===2)return Lt(e[1]);const[t,n,a={}]=e,{lang:r="text",theme:i=t.getLoadedThemes()[0]}=a;if(Oa(r)||La(i))throw new W("Plain language does not have grammar state");if(r==="ansi")throw new W("ANSI language does not have grammar state");const{theme:s,colorMap:c}=t.setTheme(i),o=t.getLanguage(r);return new gt(Cn(n,o,s,c,a).stateStack,o.name,s.name)}function Au(e,t,n,a,r){const i=Cn(e,t,n,a,r),s=new gt(Cn(e,t,n,a,r).stateStack,t.name,n.name);return Rn(i.tokens,s),i.tokens}function Cn(e,t,n,a,r){const i=wn(n,r),{tokenizeMaxLineLength:s=0,tokenizeTimeLimit:c=500}=r,o=An(e);let l=r.grammarState?fu(r.grammarState,n.name)??pa:r.grammarContextCode!=null?Cn(r.grammarContextCode,t,n,a,{...r,grammarState:void 0,grammarContextCode:void 0}).stateStack:pa,u=[];const p=[];for(let d=0,g=o.length;d0&&m.length>=s){u=[],p.push([{content:m,offset:v,color:"",fontStyle:0}]);continue}let _,y,b;r.includeExplanation&&(_=t.tokenizeLine(m,l,c),y=_.tokens,b=0);const x=t.tokenizeLine2(m,l,c),h=x.tokens.length/2;for(let C=0;CB.trim());break;case"object":z=q.scope;break;default:continue}R.push({settings:q,selectors:z.map(B=>B.split(/ /))})}P.explanation=[];let O=0;for(;k+O({scopeName:t}))}function Tu(e,t){const n=[];for(let a=0,r=t.length;a=0&&r>=0;)$r(e[a],n[r])&&(a-=1),r-=1;return a===-1}function Iu(e,t,n){const a=[];for(const{selectors:r,settings:i}of e)for(const s of r)if(Nu(s,t,n)){a.push(i);break}return a}function Zi(e,t,n){const a=Object.entries(n.themes).filter(o=>o[1]).map(o=>({color:o[0],theme:o[1]})),r=a.map(o=>{const l=Pa(e,t,{...n,theme:o.theme}),u=Lt(l),p=typeof o.theme=="string"?o.theme:o.theme.name;return{tokens:l,state:u,theme:p}}),i=Ou(...r.map(o=>o.tokens)),s=i[0].map((o,l)=>o.map((u,p)=>{const d={content:u.content,variants:{},offset:u.offset};return"includeExplanation"in n&&n.includeExplanation&&(d.explanation=u.explanation),i.forEach((g,m)=>{const{content:v,explanation:_,offset:y,...b}=g[l][p];d.variants[a[m].color]=b}),d})),c=r[0].state?new gt(Object.fromEntries(r.map(o=>[o.theme,o.state?.getInternalStack(o.theme)])),r[0].state.lang):void 0;return c&&Rn(s,c),s}function Ou(...e){const t=e.map(()=>[]),n=e.length;for(let a=0;ao[a]),i=t.map(()=>[]);t.forEach((o,l)=>o.push(i[l]));const s=r.map(()=>0),c=r.map(o=>o[0]);for(;c.every(o=>o);){const o=Math.min(...c.map(l=>l.content.length));for(let l=0;ly[1]).map(y=>({color:y[0],theme:y[1]})).sort((y,b)=>y.color===l?-1:b.color===l?1:0);if(d.length===0)throw new W("`themes` option must not be empty");const g=Zi(e,t,n);if(o=Lt(g),l&&Da!==l&&!d.find(y=>y.color===l))throw new W(`\`themes\` option must contain the defaultColor key \`${l}\``);const m=d.map(y=>e.getTheme(y.theme)),v=d.map(y=>y.color);i=g.map(y=>y.map(b=>hu(b,v,u,l,p))),o&&Rn(i,o);const _=d.map(y=>wn(y.theme,n));r=jr(d,m,_,u,l,"fg",p),a=jr(d,m,_,u,l,"bg",p),s=`shiki-themes ${m.map(y=>y.name).join(" ")}`,c=l?void 0:[r,a].join(";")}else if("theme"in n){const l=wn(n.theme,n);i=Pa(e,t,n);const u=e.getTheme(n.theme);a=Ie(u.bg,l),r=Ie(u.fg,l),s=u.name,o=Lt(i)}else throw new W("Invalid options, either `theme` or `themes` must be provided");return{tokens:i,fg:r,bg:a,themeName:s,rootStyle:c,grammarState:o}}function jr(e,t,n,a,r,i,s){return e.map((c,o)=>{const l=Ie(t[o][i],n[o])||"inherit",u=`${a+c.color}${i==="bg"?"-bg":""}:${l}`;if(o===0&&r){if(r===Da&&e.length>1){const p=e.findIndex(v=>v.color==="light"),d=e.findIndex(v=>v.color==="dark");if(p===-1||d===-1)throw new W('When using `defaultColor: "light-dark()"`, you must provide both `light` and `dark` themes');const g=Ie(t[p][i],n[p])||"inherit",m=Ie(t[d][i],n[d])||"inherit";return`light-dark(${g}, ${m});${u}`}return l}return s==="css-vars"?u:null}).filter(c=>!!c).join(";")}function En(e,t,n,a={meta:{},options:n,codeToHast:(r,i)=>En(e,r,i),codeToTokens:(r,i)=>Fn(e,r,i)}){let r=t;for(const m of kn(n))r=m.preprocess?.call(a,r,n)||r;let{tokens:i,fg:s,bg:c,themeName:o,rootStyle:l,grammarState:u}=Fn(e,r,n);const{mergeWhitespaces:p=!0,mergeSameStyleTokens:d=!1}=n;p===!0?i=Du(i):p==="never"&&(i=Pu(i)),d&&(i=qu(i));const g={...a,get source(){return r}};for(const m of kn(n))i=m.tokens?.call(g,i)||i;return Lu(i,{...n,fg:s,bg:c,themeName:o,rootStyle:l},g,u)}function Lu(e,t,n,a=Lt(e)){const r=kn(t),i=[],s={type:"root",children:[]},{structure:c="classic",tabindex:o="0"}=t;let l={type:"element",tagName:"pre",properties:{class:`shiki ${t.themeName||""}`,style:t.rootStyle||`background-color:${t.bg};color:${t.fg}`,...o!==!1&&o!=null?{tabindex:o.toString()}:{},...Object.fromEntries(Array.from(Object.entries(t.meta||{})).filter(([m])=>!m.startsWith("_")))},children:[]},u={type:"element",tagName:"code",properties:{},children:i};const p=[],d={...n,structure:c,addClassToHast:Hi,get source(){return n.source},get tokens(){return e},get options(){return t},get root(){return s},get pre(){return l},get code(){return u},get lines(){return p}};if(e.forEach((m,v)=>{v&&(c==="inline"?s.children.push({type:"element",tagName:"br",properties:{},children:[]}):c==="classic"&&i.push({type:"text",value:` `}));let _={type:"element",tagName:"span",properties:{class:"line"},children:[]},y=0;for(const b of m){let x={type:"element",tagName:"span",properties:{...b.htmlAttrs},children:[{type:"text",value:b.content}]};const h=fa(b.htmlStyle||xn(b));h&&(x.properties.style=h);for(const C of r)x=C?.span?.call(d,x,v+1,y,_,b)||x;c==="inline"?s.children.push(x):c==="classic"&&_.children.push(x),y+=b.content.length}if(c==="classic"){for(const b of r)_=b?.line?.call(d,_,v+1)||_;p.push(_),i.push(_)}else c==="inline"&&p.push(_)}),c==="classic"){for(const m of r)u=m?.code?.call(d,u)||u;l.children.push(u);for(const m of r)l=m?.pre?.call(d,l)||l;s.children.push(l)}else if(c==="inline"){const m=[];let v={type:"element",tagName:"span",properties:{class:"line"},children:[]};for(const b of s.children)b.type==="element"&&b.tagName==="br"?(m.push(v),v={type:"element",tagName:"span",properties:{class:"line"},children:[]}):(b.type==="element"||b.type==="text")&&v.children.push(b);m.push(v);let y={type:"element",tagName:"code",properties:{},children:m};for(const b of r)y=b?.code?.call(d,y)||y;s.children=[];for(let b=0;b0&&s.children.push({type:"element",tagName:"br",properties:{},children:[]});const x=y.children[b];x.type==="element"&&s.children.push(...x.children)}}let g=s;for(const m of r)g=m?.root?.call(d,g)||g;return a&&Rn(g,a),g}function Du(e){return e.map(t=>{const n=[];let a="",r=0;return t.forEach((i,s)=>{const o=!(i.fontStyle&&(i.fontStyle&K.Underline||i.fontStyle&K.Strikethrough));o&&i.content.match(/^\s+$/)&&t[s+1]?(r||(r=i.offset),a+=i.content):a?(o?n.push({...i,offset:r,content:a+i.content}):n.push({content:a,offset:r},i),r=0,a=""):n.push(i)}),n})}function Pu(e){return e.map(t=>t.flatMap(n=>{if(n.content.match(/^\s+$/))return n;const a=n.content.match(/^(\s*)(.*?)(\s*)$/);if(!a)return n;const[,r,i,s]=a;if(!r&&!s)return n;const c=[{...n,offset:n.offset+r.length,content:i}];return r&&c.unshift({content:r,offset:n.offset}),s&&c.push({content:s,offset:n.offset+r.length+i.length}),c}))}function qu(e){return e.map(t=>{const n=[];for(const a of t){if(n.length===0){n.push({...a});continue}const r=n[n.length-1],i=fa(r.htmlStyle||xn(r)),s=fa(a.htmlStyle||xn(a)),c=r.fontStyle&&(r.fontStyle&K.Underline||r.fontStyle&K.Strikethrough),o=a.fontStyle&&(a.fontStyle&K.Underline||a.fontStyle&K.Strikethrough);!c&&!o&&i===s?r.content+=a.content:n.push({...a})}return n})}const Mu=ru;function zu(e,t,n){const a={meta:{},options:n,codeToHast:(i,s)=>En(e,i,s),codeToTokens:(i,s)=>Fn(e,i,s)};let r=Mu(En(e,t,n,a));for(const i of kn(n))r=i.postprocess?.call(a,r,n)||r;return r}const Sr={light:"#333333",dark:"#bbbbbb"},Ar={light:"#fffffe",dark:"#1e1e1e"},Rr="__shiki_resolved";function qa(e){if(e?.[Rr])return e;const t={...e};t.tokenColors&&!t.settings&&(t.settings=t.tokenColors,delete t.tokenColors),t.type||="dark",t.colorReplacements={...t.colorReplacements},t.settings||=[];let{bg:n,fg:a}=t;if(!n||!a){const c=t.settings?t.settings.find(o=>!o.name&&!o.scope):void 0;c?.settings?.foreground&&(a=c.settings.foreground),c?.settings?.background&&(n=c.settings.background),!a&&t?.colors?.["editor.foreground"]&&(a=t.colors["editor.foreground"]),!n&&t?.colors?.["editor.background"]&&(n=t.colors["editor.background"]),a||(a=t.type==="light"?Sr.light:Sr.dark),n||(n=t.type==="light"?Ar.light:Ar.dark),t.fg=a,t.bg=n}t.settings[0]&&t.settings[0].settings&&!t.settings[0].scope||t.settings.unshift({settings:{foreground:t.fg,background:t.bg}});let r=0;const i=new Map;function s(c){if(i.has(c))return i.get(c);r+=1;const o=`#${r.toString(16).padStart(8,"0").toLowerCase()}`;return t.colorReplacements?.[`#${o}`]?s(c):(i.set(c,o),o)}t.settings=t.settings.map(c=>{const o=c.settings?.foreground&&!c.settings.foreground.startsWith("#"),l=c.settings?.background&&!c.settings.background.startsWith("#");if(!o&&!l)return c;const u={...c,settings:{...c.settings}};if(o){const p=s(c.settings.foreground);t.colorReplacements[p]=c.settings.foreground,u.settings.foreground=p}if(l){const p=s(c.settings.background);t.colorReplacements[p]=c.settings.background,u.settings.background=p}return u});for(const c of Object.keys(t.colors||{}))if((c==="editor.foreground"||c==="editor.background"||c.startsWith("terminal.ansi"))&&!t.colors[c]?.startsWith("#")){const o=s(t.colors[c]);t.colorReplacements[o]=t.colors[c],t.colors[c]=o}return Object.defineProperty(t,Rr,{enumerable:!1,writable:!1,value:!0}),t}async function Bu(e){return Array.from(new Set((await Promise.all(e.filter(t=>!cu(t)).map(async t=>await Ui(t).then(n=>Array.isArray(n)?n:[n])))).flat()))}async function Gu(e){return(await Promise.all(e.map(async n=>lu(n)?null:qa(await Ui(n))))).filter(n=>!!n)}class st extends Error{constructor(t){super(t),this.name="ShikiError"}}class Uu extends Uc{constructor(t,n,a,r={}){super(t),this._resolver=t,this._themes=n,this._langs=a,this._alias=r,this._themes.map(i=>this.loadTheme(i)),this.loadLanguages(this._langs)}_resolvedThemes=new Map;_resolvedGrammars=new Map;_langMap=new Map;_langGraph=new Map;_textmateThemeCache=new WeakMap;_loadedThemesCache=null;_loadedLanguagesCache=null;getTheme(t){return typeof t=="string"?this._resolvedThemes.get(t):this.loadTheme(t)}loadTheme(t){const n=qa(t);return n.name&&(this._resolvedThemes.set(n.name,n),this._loadedThemesCache=null),n}getLoadedThemes(){return this._loadedThemesCache||(this._loadedThemesCache=[...this._resolvedThemes.keys()]),this._loadedThemesCache}setTheme(t){let n=this._textmateThemeCache.get(t);n||(n=fn.createFromRawTheme(t),this._textmateThemeCache.set(t,n)),this._syncRegistry.setTheme(n)}getGrammar(t){if(this._alias[t]){const n=new Set([t]);for(;this._alias[t];){if(t=this._alias[t],n.has(t))throw new st(`Circular alias \`${Array.from(n).join(" -> ")} -> ${t}\``);n.add(t)}}return this._resolvedGrammars.get(t)}loadLanguage(t){if(this.getGrammar(t.name))return;const n=new Set([...this._langMap.values()].filter(i=>i.embeddedLangsLazy?.includes(t.name)));this._resolver.addLanguage(t);const a={balancedBracketSelectors:t.balancedBracketSelectors||["*"],unbalancedBracketSelectors:t.unbalancedBracketSelectors||[]};this._syncRegistry._rawGrammars.set(t.scopeName,t);const r=this.loadGrammarWithConfiguration(t.scopeName,1,a);if(r.name=t.name,this._resolvedGrammars.set(t.name,r),t.aliases&&t.aliases.forEach(i=>{this._alias[i]=t.name}),this._loadedLanguagesCache=null,n.size)for(const i of n)this._resolvedGrammars.delete(i.name),this._loadedLanguagesCache=null,this._syncRegistry?._injectionGrammars?.delete(i.scopeName),this._syncRegistry?._grammars?.delete(i.scopeName),this.loadLanguage(this._langMap.get(i.name))}dispose(){super.dispose(),this._resolvedThemes.clear(),this._resolvedGrammars.clear(),this._langMap.clear(),this._langGraph.clear(),this._loadedThemesCache=null}loadLanguages(t){for(const r of t)this.resolveEmbeddedLanguages(r);const n=Array.from(this._langGraph.entries()),a=n.filter(([r,i])=>!i);if(a.length){const r=n.filter(([i,s])=>s&&s.embeddedLangs?.some(c=>a.map(([o])=>o).includes(c))).filter(i=>!a.includes(i));throw new st(`Missing languages ${a.map(([i])=>`\`${i}\``).join(", ")}, required by ${r.map(([i])=>`\`${i}\``).join(", ")}`)}for(const[r,i]of n)this._resolver.addLanguage(i);for(const[r,i]of n)this.loadLanguage(i)}getLoadedLanguages(){return this._loadedLanguagesCache||(this._loadedLanguagesCache=[...new Set([...this._resolvedGrammars.keys(),...Object.keys(this._alias)])]),this._loadedLanguagesCache}resolveEmbeddedLanguages(t){this._langMap.set(t.name,t),this._langGraph.set(t.name,t);const n=t.embeddedLanguages??t.embeddedLangs;if(n)for(const a of n)this._langGraph.set(a,this._langMap.get(a))}}class Hu{_langs=new Map;_scopeToLang=new Map;_injections=new Map;_onigLib;constructor(t,n){this._onigLib={createOnigScanner:a=>t.createScanner(a),createOnigString:a=>t.createString(a)},n.forEach(a=>this.addLanguage(a))}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(n=>{this._langs.set(n,t)}),this._scopeToLang.set(t.scopeName,t),t.injectTo&&t.injectTo.forEach(n=>{this._injections.get(n)||this._injections.set(n,[]),this._injections.get(n).push(t.scopeName)})}getInjections(t){const n=t.split(".");let a=[];for(let r=1;r<=n.length;r++){const i=n.slice(0,r).join(".");a=[...a,...this._injections.get(i)||[]]}return a}}let Ct=0;function Wu(e){Ct+=1,e.warnings!==!1&&Ct>=10&&Ct%10===0&&console.warn(`[Shiki] ${Ct} 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 st("`engine` option is required for synchronous mode");const n=(e.langs||[]).flat(1),a=(e.themes||[]).flat(1).map(qa),r=new Hu(e.engine,n),i=new Uu(r,a,n,e.langAlias);let s;function c(b){_();const x=i.getGrammar(typeof b=="string"?b:b.name);if(!x)throw new st(`Language \`${b}\` not found, you may need to load it first`);return x}function o(b){if(b==="none")return{bg:"",fg:"",name:"none",settings:[],type:"dark"};_();const x=i.getTheme(b);if(!x)throw new st(`Theme \`${b}\` not found, you may need to load it first`);return x}function l(b){_();const x=o(b);s!==b&&(i.setTheme(x),s=b);const h=i.getColorMap();return{theme:x,colorMap:h}}function u(){return _(),i.getLoadedThemes()}function p(){return _(),i.getLoadedLanguages()}function d(...b){_(),i.loadLanguages(b.flat(1))}async function g(...b){return d(await Bu(b))}function m(...b){_();for(const x of b.flat(1))i.loadTheme(x)}async function v(...b){return _(),m(await Gu(b))}function _(){if(t)throw new st("Shiki instance has been disposed")}function y(){t||(t=!0,i.dispose(),Ct-=1)}return{setTheme:l,getTheme:o,getLanguage:c,getLoadedThemes:u,getLoadedLanguages:p,loadLanguage:g,loadLanguageSync:d,loadTheme:v,loadThemeSync:m,dispose:y,[Symbol.dispose]:y}}function Vu(e){const t=Wu(e);return{getLastGrammarState:(...n)=>Su(t,...n),codeToTokensBase:(n,a)=>Pa(t,n,a),codeToTokensWithThemes:(n,a)=>Zi(t,n,a),codeToTokens:(n,a)=>Fn(t,n,a),codeToHast:(n,a)=>En(t,n,a),codeToHtml:(n,a)=>zu(t,n,a),getBundledLanguages:()=>({}),getBundledThemes:()=>({}),...t,getInternalContext:()=>t}}function ft(e){if([...e].length!==1)throw new Error(`Expected "${e}" to be a single code point`);return e.codePointAt(0)}function Zu(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}const Ma=new Set(["alnum","alpha","ascii","blank","cntrl","digit","graph","lower","print","punct","space","upper","word","xdigit"]),V=String.raw;function bt(e,t){if(e==null)throw new Error(t??"Value expected");return e}const Yi=V`\[\^?`,Xi=`c.? | C(?:-.?)?|${V`[pP]\{(?:\^?[-\x20_]*[A-Za-z][-\x20\w]*\})?`}|${V`x[89A-Fa-f]\p{AHex}(?:\\x[89A-Fa-f]\p{AHex})*`}|${V`u(?:\p{AHex}{4})? | x\{[^\}]*\}? | x\p{AHex}{0,2}`}|${V`o\{[^\}]*\}?`}|${V`\d{1,3}`}`,za=/[?*+][?+]?|\{(?:\d+(?:,\d*)?|,\d+)\}\??/,on=new RegExp(V` \\ (?: ${Xi} | [gk]<[^>]*>? | [gk]'[^']*'? | . ) | \( (?: \? (?: [:=!>({] | <[=!] | <[^>]*> | '[^']*' | ~\|? | #(?:[^)\\]|\\.?)* | [^:)]*[:)] )? | \*[^\)]*\)? )? | (?:${za.source})+ | ${Yi} | . `.replace(/\s+/g,""),"gsu"),Zn=new RegExp(V` \\ (?: ${Xi} | . ) | \[:(?:\^?\p{Alpha}+|\^):\] | ${Yi} | && | . `.replace(/\s+/g,""),"gsu");function Yu(e,t={}){const n={flags:"",...t,rules:{captureGroup:!1,singleline:!1,...t.rules}};if(typeof e!="string")throw new Error("String expected as pattern");const a=hp(n.flags),r=[a.extended],i={captureGroup:n.rules.captureGroup,getCurrentModX(){return r.at(-1)},numOpenGroups:0,popModX(){r.pop()},pushModX(p){r.push(p)},replaceCurrentModX(p){r[r.length-1]=p},singleline:n.rules.singleline};let s=[],c;for(on.lastIndex=0;c=on.exec(e);){const p=Xu(i,e,c[0],on.lastIndex);p.tokens?s.push(...p.tokens):p.token&&s.push(p.token),p.lastIndex!==void 0&&(on.lastIndex=p.lastIndex)}const o=[];let l=0;s.filter(p=>p.type==="GroupOpen").forEach(p=>{p.kind==="capturing"?p.number=++l:p.raw==="("&&o.push(p)}),l||o.forEach((p,d)=>{p.kind="capturing",p.number=d+1});const u=l||o.length;return{tokens:s.map(p=>p.type==="EscapedNumber"?fp(p,u):p).flat(),flags:a}}function Xu(e,t,n,a){const[r,i]=n;if(n==="["||n==="[^"){const s=Ku(t,n,a);return{tokens:s.tokens,lastIndex:s.lastIndex}}if(r==="\\"){if("AbBGyYzZ".includes(i))return{token:Tr(n,n)};if(/^\\g[<']/.test(n)){if(!/^\\g(?:<[^>]+>|'[^']+')$/.test(n))throw new Error(`Invalid group name "${n}"`);return{token:op(n)}}if(/^\\k[<']/.test(n)){if(!/^\\k(?:<[^>]+>|'[^']+')$/.test(n))throw new Error(`Invalid group name "${n}"`);return{token:Qi(n)}}if(i==="K")return{token:Ji("keep",n)};if(i==="N"||i==="R")return{token:He("newline",n,{negate:i==="N"})};if(i==="O")return{token:He("any",n)};if(i==="X")return{token:He("text_segment",n)};const s=Ki(n,{inCharClass:!1});return Array.isArray(s)?{tokens:s}:{token:s}}if(r==="("){if(i==="*")return{token:pp(n)};if(n==="(?{")throw new Error(`Unsupported callout "${n}"`);if(n.startsWith("(?#")){if(t[a]!==")")throw new Error('Unclosed comment group "(?#"');return{lastIndex:a+1}}if(/^\(\?[-imx]+[:)]$/.test(n))return{token:up(n,e)};if(e.pushModX(e.getCurrentModX()),e.numOpenGroups++,n==="("&&!e.captureGroup||n==="(?:")return{token:rt("group",n)};if(n==="(?>")return{token:rt("atomic",n)};if(n==="(?="||n==="(?!"||n==="(?<="||n==="(?")||n.startsWith("(?'")&&n.endsWith("'"))return{token:rt("capturing",n,{...n!=="("&&{name:n.slice(3,-1)}})};if(n.startsWith("(?~")){if(n==="(?~|")throw new Error(`Unsupported absence function kind "${n}"`);return{token:rt("absence_repeater",n)}}throw n==="(?("?new Error(`Unsupported conditional "${n}"`):new Error(`Invalid or unsupported group option "${n}"`)}if(n===")"){if(e.popModX(),e.numOpenGroups--,e.numOpenGroups<0)throw new Error('Unmatched ")"');return{token:rp(n)}}if(e.getCurrentModX()){if(n==="#"){const s=t.indexOf(` `,a);return{lastIndex:s===-1?t.length:s}}if(/^\s$/.test(n)){const s=/\s+/y;return s.lastIndex=a,{lastIndex:s.exec(t)?s.lastIndex:a}}}if(n===".")return{token:He("dot",n)};if(n==="^"||n==="$"){const s=e.singleline?{"^":V`\A`,$:V`\Z`}[n]:n;return{token:Tr(s,n)}}return n==="|"?{token:Ju(n)}:za.test(n)?{tokens:bp(n)}:{token:$e(ft(n),n)}}function Ku(e,t,n){const a=[Nr(t[1]==="^",t)];let r=1,i;for(Zn.lastIndex=n;i=Zn.exec(e);){const s=i[0];if(s[0]==="["&&s[1]!==":")r++,a.push(Nr(s[1]==="^",s));else if(s==="]"){if(a.at(-1).type==="CharacterClassOpen")a.push($e(93,s));else if(r--,a.push(ep(s)),!r)break}else{const c=Qu(s);Array.isArray(c)?a.push(...c):a.push(c)}}return{tokens:a,lastIndex:Zn.lastIndex||e.length}}function Qu(e){if(e[0]==="\\")return Ki(e,{inCharClass:!0});if(e[0]==="["){const t=/\[:(?\^?)(?[a-z]+):\]/.exec(e);if(!t||!Ma.has(t.groups.name))throw new Error(`Invalid POSIX class "${e}"`);return He("posix",e,{value:t.groups.name,negate:!!t.groups.negate})}return e==="-"?tp(e):e==="&&"?np(e):$e(ft(e),e)}function Ki(e,{inCharClass:t}){const n=e[1];if(n==="c"||n==="C")return lp(e);if("dDhHsSwW".includes(n))return dp(e);if(e.startsWith(V`\o{`))throw new Error(`Incomplete, invalid, or unsupported octal code point "${e}"`);if(/^\\[pP]\{/.test(e)){if(e.length===3)throw new Error(`Incomplete or invalid Unicode property "${e}"`);return mp(e)}if(new RegExp("^\\\\x[89A-Fa-f]\\p{AHex}","u").test(e))try{const a=e.split(/\\x/).slice(1).map(s=>parseInt(s,16)),r=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}).decode(new Uint8Array(a)),i=new TextEncoder;return[...r].map(s=>{const c=[...i.encode(s)].map(o=>`\\x${o.toString(16)}`).join("");return $e(ft(s),c)})}catch{throw new Error(`Multibyte code "${e}" incomplete or invalid in Oniguruma`)}if(n==="u"||n==="x")return $e(gp(e),e);if(Ir.has(n))return $e(Ir.get(n),e);if(/\d/.test(n))return ap(t,e);if(e==="\\")throw new Error(V`Incomplete escape "\"`);if(n==="M")throw new Error(`Unsupported meta "${e}"`);if([...e].length===2)return $e(e.codePointAt(1),e);throw new Error(`Unexpected escape "${e}"`)}function Ju(e){return{type:"Alternator",raw:e}}function Tr(e,t){return{type:"Assertion",kind:e,raw:t}}function Qi(e){return{type:"Backreference",raw:e}}function $e(e,t){return{type:"Character",value:e,raw:t}}function ep(e){return{type:"CharacterClassClose",raw:e}}function tp(e){return{type:"CharacterClassHyphen",raw:e}}function np(e){return{type:"CharacterClassIntersector",raw:e}}function Nr(e,t){return{type:"CharacterClassOpen",negate:e,raw:t}}function He(e,t,n={}){return{type:"CharacterSet",kind:e,...n,raw:t}}function Ji(e,t,n={}){return e==="keep"?{type:"Directive",kind:e,raw:t}:{type:"Directive",kind:e,flags:bt(n.flags),raw:t}}function ap(e,t){return{type:"EscapedNumber",inCharClass:e,raw:t}}function rp(e){return{type:"GroupClose",raw:e}}function rt(e,t,n={}){return{type:"GroupOpen",kind:e,...n,raw:t}}function ip(e,t,n,a){return{type:"NamedCallout",kind:e,tag:t,arguments:n,raw:a}}function sp(e,t,n,a){return{type:"Quantifier",kind:e,min:t,max:n,raw:a}}function op(e){return{type:"Subroutine",raw:e}}const cp=new Set(["COUNT","CMP","ERROR","FAIL","MAX","MISMATCH","SKIP","TOTAL_COUNT"]),Ir=new Map([["a",7],["b",8],["e",27],["f",12],["n",10],["r",13],["t",9],["v",11]]);function lp(e){const t=e[1]==="c"?e[2]:e[3];if(!t||!/[A-Za-z]/.test(t))throw new Error(`Unsupported control character "${e}"`);return $e(ft(t.toUpperCase())-64,e)}function up(e,t){let{on:n,off:a}=/^\(\?(?[imx]*)(?:-(?[-imx]*))?/.exec(e).groups;a??="";const r=(t.getCurrentModX()||n.includes("x"))&&!a.includes("x"),i=Lr(n),s=Lr(a),c={};if(i&&(c.enable=i),s&&(c.disable=s),e.endsWith(")"))return t.replaceCurrentModX(r),Ji("flags",e,{flags:c});if(e.endsWith(":"))return t.pushModX(r),t.numOpenGroups++,rt("group",e,{...(i||s)&&{flags:c}});throw new Error(`Unexpected flag modifier "${e}"`)}function pp(e){const t=/\(\*(?[A-Za-z_]\w*)?(?:\[(?(?:[A-Za-z_]\w*)?)\])?(?:\{(?[^}]*)\})?\)/.exec(e);if(!t)throw new Error(`Incomplete or invalid named callout "${e}"`);const{name:n,tag:a,args:r}=t.groups;if(!n)throw new Error(`Invalid named callout "${e}"`);if(a==="")throw new Error(`Named callout tag with empty value not allowed "${e}"`);const i=r?r.split(",").filter(u=>u!=="").map(u=>/^[+-]?\d+$/.test(u)?+u:u):[],[s,c,o]=i,l=cp.has(n)?n.toLowerCase():"custom";switch(l){case"fail":case"mismatch":case"skip":if(i.length>0)throw new Error(`Named callout arguments not allowed "${i}"`);break;case"error":if(i.length>1)throw new Error(`Named callout allows only one argument "${i}"`);if(typeof s=="string")throw new Error(`Named callout argument must be a number "${s}"`);break;case"max":if(!i.length||i.length>2)throw new Error(`Named callout must have one or two arguments "${i}"`);if(typeof s=="string"&&!/^[A-Za-z_]\w*$/.test(s))throw new Error(`Named callout argument one must be a tag or number "${s}"`);if(i.length===2&&(typeof c=="number"||!/^[<>X]$/.test(c)))throw new Error(`Named callout optional argument two must be '<', '>', or 'X' "${c}"`);break;case"count":case"total_count":if(i.length>1)throw new Error(`Named callout allows only one argument "${i}"`);if(i.length===1&&(typeof s=="number"||!/^[<>X]$/.test(s)))throw new Error(`Named callout optional argument must be '<', '>', or 'X' "${s}"`);break;case"cmp":if(i.length!==3)throw new Error(`Named callout must have three arguments "${i}"`);if(typeof s=="string"&&!/^[A-Za-z_]\w*$/.test(s))throw new Error(`Named callout argument one must be a tag or number "${s}"`);if(typeof c=="number"||!/^(?:[<>!=]=|[<>])$/.test(c))throw new Error(`Named callout argument two must be '==', '!=', '>', '<', '>=', or '<=' "${c}"`);if(typeof o=="string"&&!/^[A-Za-z_]\w*$/.test(o))throw new Error(`Named callout argument three must be a tag or number "${o}"`);break;case"custom":throw new Error(`Undefined callout name "${n}"`);default:throw new Error(`Unexpected named callout kind "${l}"`)}return ip(l,a??null,r?.split(",")??null,e)}function Or(e){let t=null,n,a;if(e[0]==="{"){const{minStr:r,maxStr:i}=/^\{(?\d*)(?:,(?\d*))?/.exec(e).groups,s=1e5;if(+r>s||i&&+i>s)throw new Error("Quantifier value unsupported in Oniguruma");if(n=+r,a=i===void 0?+r:i===""?1/0:+i,n>a&&(t="possessive",[n,a]=[a,n]),e.endsWith("?")){if(t==="possessive")throw new Error('Unsupported possessive interval quantifier chain with "?"');t="lazy"}else t||(t="greedy")}else n=e[0]==="+"?1:0,a=e[0]==="?"?1:1/0,t=e[1]==="+"?"possessive":e[1]==="?"?"lazy":"greedy";return sp(t,n,a,e)}function dp(e){const t=e[1].toLowerCase();return He({d:"digit",h:"hex",s:"space",w:"word"}[t],e,{negate:e[1]!==t})}function mp(e){const{p:t,neg:n,value:a}=/^\\(?

[pP])\{(?\^?)(?[^}]+)/.exec(e).groups;return He("property",e,{value:a,negate:t==="P"&&!n||t==="p"&&!!n})}function Lr(e){const t={};return e.includes("i")&&(t.ignoreCase=!0),e.includes("m")&&(t.dotAll=!0),e.includes("x")&&(t.extended=!0),Object.keys(t).length?t:null}function hp(e){const t={ignoreCase:!1,dotAll:!1,extended:!1,digitIsAscii:!1,posixIsAscii:!1,spaceIsAscii:!1,wordIsAscii:!1,textSegmentMode:null};for(let n=0;n\\p{AHex}+)","u").exec(e).groups.hex:e.slice(2);return parseInt(t,16)}function fp(e,t){const{raw:n,inCharClass:a}=e,r=n.slice(1);if(!a&&(r!=="0"&&r.length===1||r[0]!=="0"&&+r<=t))return[Qi(n)];const i=[],s=r.match(/^[0-7]+|\d/g);for(let c=0;c127)throw new Error(V`Octal encoded byte above 177 unsupported "${n}"`)}else l=ft(o);i.push($e(l,(c===0?"\\":"")+o))}return i}function bp(e){const t=[],n=new RegExp(za,"gy");let a;for(;a=n.exec(e);){const r=a[0];if(r[0]==="{"){const i=/^\{(?\d+),(?\d+)\}\??$/.exec(r);if(i){const{min:s,max:c}=i.groups;if(+s>+c&&r.endsWith("?")){n.lastIndex--,t.push(Or(r.slice(0,-1)));continue}}}t.push(Or(r))}return t}function es(e,t){if(!Array.isArray(e.body))throw new Error("Expected node with body array");if(e.body.length!==1)return!1;const n=e.body[0];return!t||Object.keys(t).every(a=>t[a]===n[a])}function _p(e){return yp.has(e.type)}const yp=new Set(["AbsenceFunction","Backreference","CapturingGroup","Character","CharacterClass","CharacterSet","Group","Quantifier","Subroutine"]);function ts(e,t={}){const n={flags:"",normalizeUnknownPropertyNames:!1,skipBackrefValidation:!1,skipLookbehindValidation:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t,rules:{captureGroup:!1,singleline:!1,...t.rules}},a=Yu(e,{flags:n.flags,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline}}),r=(d,g)=>{const m=a.tokens[i.nextIndex];switch(i.parent=d,i.nextIndex++,m.type){case"Alternator":return Ze();case"Assertion":return vp(m);case"Backreference":return wp(m,i);case"Character":return Tn(m.value,{useLastValid:!!g.isCheckingRangeEnd});case"CharacterClassHyphen":return xp(m,i,g);case"CharacterClassOpen":return kp(m,i,g);case"CharacterSet":return Cp(m,i);case"Directive":return Ap(m.kind,{flags:m.flags});case"GroupOpen":return Fp(m,i,g);case"NamedCallout":return Tp(m.kind,m.tag,m.arguments);case"Quantifier":return Ep(m,i);case"Subroutine":return $p(m,i);default:throw new Error(`Unexpected token type "${m.type}"`)}},i={capturingGroups:[],hasNumberedRef:!1,namedGroupsByName:new Map,nextIndex:0,normalizeUnknownPropertyNames:n.normalizeUnknownPropertyNames,parent:null,skipBackrefValidation:n.skipBackrefValidation,skipLookbehindValidation:n.skipLookbehindValidation,skipPropertyNameValidation:n.skipPropertyNameValidation,subroutines:[],tokens:a.tokens,unicodePropertyMap:n.unicodePropertyMap,walk:r},s=Ip(Rp(a.flags));let c=s.body[0];for(;i.nextIndexo.length)throw new Error("Subroutine uses a group number that's not defined");d&&(o[d-1].isSubroutined=!0)}else if(u.has(d)){if(u.get(d).length>1)throw new Error(V`Subroutine uses a duplicate group name "\g<${d}>"`);u.get(d)[0].isSubroutined=!0}else throw new Error(V`Subroutine uses a group name that's not defined "\g<${d}>"`);return s}function vp({kind:e}){return ba(bt({"^":"line_start",$:"line_end","\\A":"string_start","\\b":"word_boundary","\\B":"word_boundary","\\G":"search_start","\\y":"text_segment_boundary","\\Y":"text_segment_boundary","\\z":"string_end","\\Z":"string_end_newline"}[e],`Unexpected assertion kind "${e}"`),{negate:e===V`\B`||e===V`\Y`})}function wp({raw:e},t){const n=/^\\k[<']/.test(e),a=n?e.slice(3,-1):e.slice(1),r=(i,s=!1)=>{const c=t.capturingGroups.length;let o=!1;if(i>c)if(t.skipBackrefValidation)o=!0;else throw new Error(`Not enough capturing groups defined to the left "${e}"`);return t.hasNumberedRef=!0,_a(s?c+1-i:i,{orphan:o})};if(n){const i=/^(?-?)0*(?[1-9]\d*)$/.exec(a);if(i)return r(+i.groups.num,!!i.groups.sign);if(/[-+]/.test(a))throw new Error(`Invalid backref name "${e}"`);if(!t.namedGroupsByName.has(a))throw new Error(`Group name not defined to the left "${e}"`);return _a(a)}return r(+a)}function xp(e,t,n){const{tokens:a,walk:r}=t,i=t.parent,s=i.body.at(-1),c=a[t.nextIndex];if(!n.isCheckingRangeEnd&&s&&s.type!=="CharacterClass"&&s.type!=="CharacterClassRange"&&c&&c.type!=="CharacterClassOpen"&&c.type!=="CharacterClassClose"&&c.type!=="CharacterClassIntersector"){const o=r(i,{...n,isCheckingRangeEnd:!0});if(s.type==="Character"&&o.type==="Character")return i.body.pop(),Sp(s,o);throw new Error("Invalid character class range")}return Tn(ft("-"))}function kp({negate:e},t,n){const{tokens:a,walk:r}=t,i=a[t.nextIndex],s=[mn()];let c=qr(i);for(;c.type!=="CharacterClassClose";){if(c.type==="CharacterClassIntersector")s.push(mn()),t.nextIndex++;else{const l=s.at(-1);l.body.push(r(l,n))}c=qr(a[t.nextIndex],i)}const o=mn({negate:e});return s.length===1?o.body=s[0].body:(o.kind="intersection",o.body=s.map(l=>l.body.length===1?l.body[0]:l)),t.nextIndex++,o}function Cp({kind:e,negate:t,value:n},a){const{normalizeUnknownPropertyNames:r,skipPropertyNameValidation:i,unicodePropertyMap:s}=a;if(e==="property"){const c=Nn(n);if(Ma.has(c)&&!s?.has(c))e="posix",n=c;else return it(n,{negate:t,normalizeUnknownPropertyNames:r,skipPropertyNameValidation:i,unicodePropertyMap:s})}return e==="posix"?Np(n,{negate:t}):ya(e,{negate:t})}function Fp(e,t,n){const{tokens:a,capturingGroups:r,namedGroupsByName:i,skipLookbehindValidation:s,walk:c}=t,o=Op(e),l=o.type==="AbsenceFunction",u=Pr(o),p=u&&o.negate;if(o.type==="CapturingGroup"&&(r.push(o),o.name&&Zu(i,o.name,[]).push(o)),l&&n.isInAbsenceFunction)throw new Error("Nested absence function not supported by Oniguruma");let d=Mr(a[t.nextIndex]);for(;d.type!=="GroupClose";){if(d.type==="Alternator")o.body.push(Ze()),t.nextIndex++;else{const g=o.body.at(-1),m=c(g,{...n,isInAbsenceFunction:n.isInAbsenceFunction||l,isInLookbehind:n.isInLookbehind||u,isInNegLookbehind:n.isInNegLookbehind||p});if(g.body.push(m),(u||n.isInLookbehind)&&!s){const v="Lookbehind includes a pattern not allowed by Oniguruma";if(p||n.isInNegLookbehind){if(Dr(m)||m.type==="CapturingGroup")throw new Error(v)}else if(Dr(m)||Pr(m)&&m.negate)throw new Error(v)}}d=Mr(a[t.nextIndex])}return t.nextIndex++,o}function Ep({kind:e,min:t,max:n},a){const r=a.parent,i=r.body.at(-1);if(!i||!_p(i))throw new Error("Quantifier requires a repeatable token");const s=as(e,t,n,i);return r.body.pop(),s}function $p({raw:e},t){const{capturingGroups:n,subroutines:a}=t;let r=e.slice(3,-1);const i=/^(?[-+]?)0*(?[1-9]\d*)$/.exec(r);if(i){const c=+i.groups.num,o=n.length;if(t.hasNumberedRef=!0,r={"":c,"+":o+c,"-":o+1-c}[i.groups.sign],r<1)throw new Error("Invalid subroutine number")}else r==="0"&&(r=0);const s=rs(r);return a.push(s),s}function jp(e,t){return{type:"AbsenceFunction",kind:e,body:Gt(t?.body)}}function Ze(e){return{type:"Alternative",body:is(e?.body)}}function ba(e,t){const n={type:"Assertion",kind:e};return(e==="word_boundary"||e==="text_segment_boundary")&&(n.negate=!!t?.negate),n}function _a(e,t){const n=!!t?.orphan;return{type:"Backreference",ref:e,...n&&{orphan:n}}}function ns(e,t){const n={name:void 0,isSubroutined:!1,...t};if(n.name!==void 0&&!Lp(n.name))throw new Error(`Group name "${n.name}" invalid in Oniguruma`);return{type:"CapturingGroup",number:e,...n.name&&{name:n.name},...n.isSubroutined&&{isSubroutined:n.isSubroutined},body:Gt(t?.body)}}function Tn(e,t){const n={useLastValid:!1,...t};if(e>1114111){const a=e.toString(16);if(n.useLastValid)e=1114111;else throw e>1310719?new Error(`Invalid code point out of range "\\x{${a}}"`):new Error(`Invalid code point out of range in JS "\\x{${a}}"`)}return{type:"Character",value:e}}function mn(e){const t={kind:"union",negate:!1,...e};return{type:"CharacterClass",kind:t.kind,negate:t.negate,body:is(e?.body)}}function Sp(e,t){if(t.valuen)throw new Error("Invalid reversed quantifier range");return{type:"Quantifier",kind:e,min:t,max:n,body:a}}function Ip(e,t){return{type:"Regex",body:Gt(t?.body),flags:e}}function rs(e){return{type:"Subroutine",ref:e}}function it(e,t){const n={negate:!1,normalizeUnknownPropertyNames:!1,skipPropertyNameValidation:!1,unicodePropertyMap:null,...t};let a=n.unicodePropertyMap?.get(Nn(e));if(!a){if(n.normalizeUnknownPropertyNames)a=Dp(e);else if(n.unicodePropertyMap&&!n.skipPropertyNameValidation)throw new Error(V`Invalid Unicode property "\p{${e}}"`)}return{type:"CharacterSet",kind:"property",value:a??e,negate:n.negate}}function Op({flags:e,kind:t,name:n,negate:a,number:r}){switch(t){case"absence_repeater":return jp("repeater");case"atomic":return de({atomic:!0});case"capturing":return ns(r,{name:n});case"group":return de({flags:e});case"lookahead":case"lookbehind":return Ge({behind:t==="lookbehind",negate:a});default:throw new Error(`Unexpected group kind "${t}"`)}}function Gt(e){if(e===void 0)e=[Ze()];else if(!Array.isArray(e)||!e.length||!e.every(t=>t.type==="Alternative"))throw new Error("Invalid body; expected array of one or more Alternative nodes");return e}function is(e){if(e===void 0)e=[];else if(!Array.isArray(e)||!e.every(t=>!!t.type))throw new Error("Invalid body; expected array of nodes");return e}function Dr(e){return e.type==="LookaroundAssertion"&&e.kind==="lookahead"}function Pr(e){return e.type==="LookaroundAssertion"&&e.kind==="lookbehind"}function Lp(e){return/^[\p{Alpha}\p{Pc}][^)]*$/u.test(e)}function Dp(e){return e.trim().replace(/[- _]+/g,"_").replace(/[A-Z][a-z]+(?=[A-Z])/g,"$&_").replace(/[A-Za-z]+/g,t=>t[0].toUpperCase()+t.slice(1).toLowerCase())}function Nn(e){return e.replace(/[- _]+/g,"").toLowerCase()}function qr(e,t){return bt(e,`${t?.type==="Character"&&t.value===93?"Empty":"Unclosed"} character class`)}function Mr(e){return bt(e,"Unclosed group")}function At(e,t,n=null){function a(i,s){for(let c=0;cA-Za-z\-]|<[=!]|\(DEFINE\))`;function qp(e,t){for(let n=0;n=t&&e[n]++}function Mp(e,t,n,a){return e.slice(0,t)+a+e.slice(t+n.length)}const oe=Object.freeze({DEFAULT:"DEFAULT",CHAR_CLASS:"CHAR_CLASS"});function Ba(e,t,n,a){const r=new RegExp(String.raw`${t}|(?<$skip>\[\^?|\\?.)`,"gsu"),i=[!1];let s=0,c="";for(const o of e.matchAll(r)){const{0:l,groups:{$skip:u}}=o;if(!u&&(!a||a===oe.DEFAULT==!s)){n instanceof Function?c+=n(o,{context:s?oe.CHAR_CLASS:oe.DEFAULT,negated:i[i.length-1]}):c+=n;continue}l[0]==="["?(s++,i.push(l[1]==="^")):l==="]"&&s&&(s--,i.pop()),c+=l}return c}function ss(e,t,n,a){Ba(e,t,n,a)}function zp(e,t,n=0,a){if(!new RegExp(t,"su").test(e))return null;const r=new RegExp(`${t}|(?<$skip>\\\\?.)`,"gsu");r.lastIndex=n;let i=0,s;for(;s=r.exec(e);){const{0:c,groups:{$skip:o}}=s;if(!o&&(!a||a===oe.DEFAULT==!i))return s;c==="["?i++:c==="]"&&i&&i--,r.lastIndex==s.index&&r.lastIndex++}return null}function ln(e,t,n){return!!zp(e,t,0,n)}function Bp(e,t){const n=/\\?./gsu;n.lastIndex=t;let a=e.length,r=0,i=1,s;for(;s=n.exec(e);){const[c]=s;if(c==="[")r++;else if(r)c==="]"&&r--;else if(c==="(")i++;else if(c===")"&&(i--,!i)){a=s.index;break}}return e.slice(t,a)}const zr=new RegExp(String.raw`(?${Pp})|(?\((?:\?<[^>]+>)?)|\\?.`,"gsu");function Gp(e,t){const n=t?.hiddenCaptures??[];let a=t?.captureTransfers??new Map;if(!/\(\?>/.test(e))return{pattern:e,captureTransfers:a,hiddenCaptures:n};const r="(?>",i="(?:(?=(",s=[0],c=[];let o=0,l=0,u=NaN,p;do{p=!1;let d=0,g=0,m=!1,v;for(zr.lastIndex=Number.isNaN(u)?0:u+i.length;v=zr.exec(e);){const{0:_,index:y,groups:{capturingStart:b,noncapturingStart:x}}=v;if(_==="[")d++;else if(d)_==="]"&&d--;else if(_===r&&!m)u=y,m=!0;else if(m&&x)g++;else if(b)m?g++:(o++,s.push(o+l));else if(_===")"&&m){if(!g){l++;const h=o+l;if(e=`${e.slice(0,u)}${i}${e.slice(u+r.length,y)}))<$$${h}>)${e.slice(y+1)}`,p=!0,c.push(h),qp(n,h),a.size){const C=new Map;a.forEach((k,S)=>{C.set(S>=h?S+1:S,k.map(T=>T>=h?T+1:T))}),a=C}break}g--}}}while(p);return n.push(...c),e=Ba(e,String.raw`\\(?[1-9]\d*)|<\$\$(?\d+)>`,({0:d,groups:{backrefNum:g,wrappedBackrefNum:m}})=>{if(g){const v=+g;if(v>s.length-1)throw new Error(`Backref "${d}" greater than number of captures`);return`\\${s[v]}`}return`\\${m}`},oe.DEFAULT),{pattern:e,captureTransfers:a,hiddenCaptures:n}}const os=String.raw`(?:[?*+]|\{\d+(?:,\d*)?\})`,Yn=new RegExp(String.raw` \\(?: \d+ | c[A-Za-z] | [gk]<[^>]+> | [pPu]\{[^\}]+\} | u[A-Fa-f\d]{4} | x[A-Fa-f\d]{2} ) | \((?: \? (?: [:=!>] | <(?:[=!]|[^>]+>) | [A-Za-z\-]+: | \(DEFINE\) ))? | (?${os})(?[?+]?)(?[?*+\{]?) | \\?. `.replace(/\s+/g,""),"gsu");function Up(e){if(!new RegExp(`${os}\\+`).test(e))return{pattern:e};const t=[];let n=null,a=null,r="",i=0,s;for(Yn.lastIndex=0;s=Yn.exec(e);){const{0:c,index:o,groups:{qBase:l,qMod:u,invalidQ:p}}=s;if(c==="[")i||(a=o),i++;else if(c==="]")i?i--:a=null;else if(!i)if(u==="+"&&r&&!r.startsWith("(")){if(p)throw new Error(`Invalid quantifier "${c}"`);let d=-1;if(/^\{\d+\}$/.test(l))e=Mp(e,o+l.length,u,"");else{if(r===")"||r==="]"){const g=r===")"?n:a;if(g===null)throw new Error(`Invalid unmatched "${r}"`);e=`${e.slice(0,g)}(?>${e.slice(g,o)}${l})${e.slice(o+c.length)}`}else e=`${e.slice(0,o-r.length)}(?>${r}${l})${e.slice(o+c.length)}`;d+=4}Yn.lastIndex+=d}else c[0]==="("?t.push(o):c===")"&&(n=t.length?t.pop():null);r=c}return{pattern:e}}const se=String.raw,Hp=se`\\g<(?[^>&]+)&R=(?[^>]+)>`,va=se`\(\?R=(?[^\)]+)\)|${Hp}`,In=se`\(\?<(?![=!])(?[^>]+)>`,cs=se`${In}|(?\()(?!\?)`,Me=new RegExp(se`${In}|${va}|\(\?|\\?.`,"gsu"),Xn="Cannot use multiple overlapping recursions";function Wp(e,t){const{hiddenCaptures:n,mode:a}={hiddenCaptures:[],mode:"plugin",...t};let r=t?.captureTransfers??new Map;if(!new RegExp(va,"su").test(e))return{pattern:e,captureTransfers:r,hiddenCaptures:n};if(a==="plugin"&&ln(e,se`\(\?\(DEFINE\)`,oe.DEFAULT))throw new Error("DEFINE groups cannot be used with recursion");const i=[],s=ln(e,se`\\[1-9]`,oe.DEFAULT),c=new Map,o=[];let l=!1,u=0,p=0,d;for(Me.lastIndex=0;d=Me.exec(e);){const{0:g,groups:{captureName:m,rDepth:v,gRNameOrNum:_,gRDepth:y}}=d;if(g==="[")u++;else if(u)g==="]"&&u--;else if(v){if(Br(v),l)throw new Error(Xn);if(s)throw new Error(`${a==="external"?"Backrefs":"Numbered backrefs"} cannot be used with global recursion`);const b=e.slice(0,d.index),x=e.slice(Me.lastIndex);if(ln(x,va,oe.DEFAULT))throw new Error(Xn);const h=+v-1;e=Gr(b,x,h,!1,n,i,p),r=Hr(r,b,h,i.length,0,p);break}else if(_){Br(y);let b=!1;for(const R of o)if(R.name===_||R.num===+_){if(b=!0,R.hasRecursedWithin)throw new Error(Xn);break}if(!b)throw new Error(se`Recursive \g cannot be used outside the referenced group "${a==="external"?_:se`\g<${_}&R=${y}>`}"`);const x=c.get(_),h=Bp(e,x);if(s&&ln(h,se`${In}|\((?!\?)`,oe.DEFAULT))throw new Error(`${a==="external"?"Backrefs":"Numbered backrefs"} cannot be used with recursion of capturing groups`);const C=e.slice(x,d.index),k=h.slice(C.length+g.length),S=i.length,T=+y-1,D=Gr(C,k,T,!0,n,i,p);r=Hr(r,C,T,i.length-S,S,p);const I=e.slice(0,x),P=e.slice(x+h.length);e=`${I}${D}${P}`,Me.lastIndex+=D.length-g.length-C.length-k.length,o.forEach(R=>R.hasRecursedWithin=!0),l=!0}else if(m)p++,c.set(String(p),Me.lastIndex),c.set(m,Me.lastIndex),o.push({num:p,name:m});else if(g[0]==="("){const b=g==="(";b&&(p++,c.set(String(p),Me.lastIndex)),o.push(b?{num:p}:{})}else g===")"&&o.pop()}return n.push(...i),{pattern:e,captureTransfers:r,hiddenCaptures:n}}function Br(e){const t=`Max depth must be integer between 2 and 100; used ${e}`;if(!/^[1-9]\d*$/.test(e))throw new Error(t);if(e=+e,e<2||e>100)throw new Error(t)}function Gr(e,t,n,a,r,i,s){const c=new Set;a&&ss(e+t,In,({groups:{captureName:l}})=>{c.add(l)},oe.DEFAULT);const o=[n,a?c:null,r,i,s];return`${e}${Ur(`(?:${e}`,"forward",...o)}(?:)${Ur(`${t})`,"backward",...o)}${t}`}function Ur(e,t,n,a,r,i,s){const o=u=>t==="forward"?u+2:n-u+2-1;let l="";for(let u=0;u[^>]+)>`,({0:d,groups:{captureName:g,unnamed:m,backref:v}})=>{if(v&&a&&!a.has(v))return d;const _=`_$${p}`;if(m||g){const y=s+i.length+1;return i.push(y),Vp(r,y),m?d:`(?<${g}${_}>`}return se`\k<${v}${_}>`},oe.DEFAULT)}return l}function Vp(e,t){for(let n=0;n=t&&e[n]++}function Hr(e,t,n,a,r,i){if(e.size&&a){let s=0;ss(t,cs,()=>s++,oe.DEFAULT);const c=i-s+r,o=new Map;return e.forEach((l,u)=>{const p=(a-s*n)/n,d=s*n,g=u>c+s?u+a:u,m=[];for(const v of l)if(v<=c)m.push(v);else if(v>c+s+p)m.push(v+a);else if(v<=c+s)for(let _=0;_<=n;_++)m.push(v+s*_);else for(let _=0;_<=n;_++)m.push(v+d+p*_);o.set(g,m)}),o}return e}var U=String.fromCodePoint,$=String.raw,je={flagGroups:(()=>{try{new RegExp("(?i:)")}catch{return!1}return!0})(),unicodeSets:(()=>{try{new RegExp("[[]]","v")}catch{return!1}return!0})()};je.bugFlagVLiteralHyphenIsRange=je.unicodeSets?(()=>{try{new RegExp($`[\d\-a]`,"v")}catch{return!0}return!1})():!1;je.bugNestedClassIgnoresNegation=je.unicodeSets&&new RegExp("[[^a]]","v").test("a");function $n(e,{enable:t,disable:n}){return{dotAll:!n?.dotAll&&!!(t?.dotAll||e.dotAll),ignoreCase:!n?.ignoreCase&&!!(t?.ignoreCase||e.ignoreCase)}}function Dt(e,t,n){return e.has(t)||e.set(t,n),e.get(t)}function wa(e,t){return Wr[e]>=Wr[t]}function Zp(e,t){if(e==null)throw new Error(t??"Value expected");return e}var Wr={ES2025:2025,ES2024:2024,ES2018:2018},Yp={auto:"auto",ES2025:"ES2025",ES2024:"ES2024",ES2018:"ES2018"};function ls(e={}){if({}.toString.call(e)!=="[object Object]")throw new Error("Unexpected options");if(e.target!==void 0&&!Yp[e.target])throw new Error(`Unexpected target "${e.target}"`);const t={accuracy:"default",avoidSubclass:!1,flags:"",global:!1,hasIndices:!1,lazyCompileLength:1/0,target:"auto",verbose:!1,...e,rules:{allowOrphanBackrefs:!1,asciiWordBoundaries:!1,captureGroup:!1,recursionLimit:20,singleline:!1,...e.rules}};return t.target==="auto"&&(t.target=je.flagGroups?"ES2025":je.unicodeSets?"ES2024":"ES2018"),t}var Xp="[ -\r ]",Kp=new Set([U(304),U(305)]),Fe=$`[\p{L}\p{M}\p{N}\p{Pc}]`;function us(e){if(Kp.has(e))return[e];const t=new Set,n=e.toLowerCase(),a=n.toUpperCase(),r=ed.get(n),i=Qp.get(n),s=Jp.get(n);return[...a].length===1&&t.add(a),s&&t.add(s),r&&t.add(r),t.add(n),i&&t.add(i),[...t]}var Ga=new Map(`C Other Cc Control cntrl Cf Format Cn Unassigned Co Private_Use Cs Surrogate L Letter LC Cased_Letter Ll Lowercase_Letter Lm Modifier_Letter Lo Other_Letter Lt Titlecase_Letter Lu Uppercase_Letter M Mark Combining_Mark Mc Spacing_Mark Me Enclosing_Mark Mn Nonspacing_Mark N Number Nd Decimal_Number digit Nl Letter_Number No Other_Number P Punctuation punct Pc Connector_Punctuation Pd Dash_Punctuation Pe Close_Punctuation Pf Final_Punctuation Pi Initial_Punctuation Po Other_Punctuation Ps Open_Punctuation S Symbol Sc Currency_Symbol Sk Modifier_Symbol Sm Math_Symbol So Other_Symbol Z Separator Zl Line_Separator Zp Paragraph_Separator Zs Space_Separator ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component EComp Emoji_Modifier EMod Emoji_Modifier_Base EBase Emoji_Presentation EPres Extended_Pictographic ExtPict Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS`.split(/\s/).map(e=>[Nn(e),e])),Qp=new Map([["s",U(383)],[U(383),"s"]]),Jp=new Map([[U(223),U(7838)],[U(107),U(8490)],[U(229),U(8491)],[U(969),U(8486)]]),ed=new Map([Te(453),Te(456),Te(459),Te(498),...Kn(8072,8079),...Kn(8088,8095),...Kn(8104,8111),Te(8124),Te(8140),Te(8188)]),td=new Map([["alnum",$`[\p{Alpha}\p{Nd}]`],["alpha",$`\p{Alpha}`],["ascii",$`\p{ASCII}`],["blank",$`[\p{Zs}\t]`],["cntrl",$`\p{Cc}`],["digit",$`\p{Nd}`],["graph",$`[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]`],["lower",$`\p{Lower}`],["print",$`[[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],["punct",$`[\p{P}\p{S}]`],["space",$`\p{space}`],["upper",$`\p{Upper}`],["word",$`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],["xdigit",$`\p{AHex}`]]);function nd(e,t){const n=[];for(let a=e;a<=t;a++)n.push(a);return n}function Te(e){const t=U(e);return[t.toLowerCase(),t]}function Kn(e,t){return nd(e,t).map(n=>Te(n))}var ps=new Set(["Lower","Lowercase","Upper","Uppercase","Ll","Lowercase_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter"]);function ad(e,t){const n={accuracy:"default",asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:"ES2025",...t};ds(e);const a={accuracy:n.accuracy,asciiWordBoundaries:n.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:wa(n.bestEffortTarget,"ES2024"),passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:e.flags.digitIsAscii,spaceIsAscii:e.flags.spaceIsAscii,wordIsAscii:e.flags.wordIsAscii};At(e,rd,a);const r={dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},i={currentFlags:r,prevFlags:null,globalFlags:r,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:a.subroutineRefMap};At(e,id,i);const s={groupsByName:i.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:i.reffedNodesByReferencer};return At(e,sd,s),e._originMap=i.groupOriginByCopy,e._strategy=a.strategy,e}var rd={AbsenceFunction({node:e,parent:t,replaceWith:n}){const{body:a,kind:r}=e;if(r==="repeater"){const i=de();i.body[0].body.push(Ge({negate:!0,body:a}),it("Any"));const s=de();s.body[0].body.push(as("greedy",0,1/0,i)),n(M(s,t),{traverse:!0})}else throw new Error('Unsupported absence function "(?~|"')},Alternative:{enter({node:e,parent:t,key:n},{flagDirectivesByAlt:a}){const r=e.body.filter(i=>i.kind==="flags");for(let i=n+1;i\r\n|${r?$`\p{RGI_Emoji}`:d}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}),t))}else if(o==="hex")n(Ne(it("AHex",{negate:l}),t));else if(o==="newline")n(M(Ee(l?`[^ ]`:`(?>\r ?|[ \v\f…\u2028\u2029])`),t));else if(o==="posix")if(!r&&(u==="graph"||u==="print")){if(a==="strict")throw new Error(`POSIX class "${u}" requires min target ES2024 or non-strict accuracy`);let p={graph:"!-~",print:" -~"}[u];l&&(p=`\0-${U(p.codePointAt(0)-1)}${U(p.codePointAt(2)+1)}-􏿿`),n(M(Ee(`[${p}]`),t))}else n(M(ea(Ee(td.get(u)),l),t));else if(o==="property")Ga.has(Nn(u))||(e.key="sc");else if(o==="space")n(Ne(it("space",{negate:l}),t));else if(o==="word")n(M(ea(Ee(Fe),l),t));else throw new Error(`Unexpected character set kind "${o}"`)},Directive({node:e,parent:t,root:n,remove:a,replaceWith:r,removeAllPrevSiblings:i,removeAllNextSiblings:s}){const{kind:c,flags:o}=e;if(c==="flags")if(!o.enable&&!o.disable)a();else{const l=de({flags:o});l.body[0].body=s(),r(M(l,t),{traverse:!0})}else if(c==="keep"){const l=n.body[0],p=n.body.length===1&&es(l,{type:"Group"})&&l.body[0].body.length===1?l.body[0]:n;if(t.parent!==p||p.body.length>1)throw new Error($`Uses "\K" in a way that's unsupported`);const d=Ge({behind:!0});d.body[0].body=i(),r(M(d,t))}else throw new Error(`Unexpected directive kind "${c}"`)},Flags({node:e,parent:t}){if(e.posixIsAscii)throw new Error('Unsupported flag "P"');if(e.textSegmentMode==="word")throw new Error('Unsupported flag "y{w}"');["digitIsAscii","extended","posixIsAscii","spaceIsAscii","wordIsAscii","textSegmentMode"].forEach(n=>delete e[n]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),t.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;const{enable:t,disable:n}=e.flags;t?.extended&&delete t.extended,n?.extended&&delete n.extended,t?.dotAll&&n?.dotAll&&delete t.dotAll,t?.ignoreCase&&n?.ignoreCase&&delete t.ignoreCase,t&&!Object.keys(t).length&&delete e.flags.enable,n&&!Object.keys(n).length&&delete e.flags.disable,!e.flags.enable&&!e.flags.disable&&delete e.flags},LookaroundAssertion({node:e},t){const{kind:n}=e;n==="lookbehind"&&(t.passedLookbehind=!0)},NamedCallout({node:e,parent:t,replaceWith:n}){const{kind:a}=e;if(a==="fail")n(M(Ge({negate:!0}),t));else throw new Error(`Unsupported named callout "(*${a.toUpperCase()}"`)},Quantifier({node:e}){if(e.body.type==="Quantifier"){const t=de();t.body[0].body.push(e.body),e.body=M(t,e)}},Regex:{enter({node:e},{supportedGNodes:t}){const n=[];let a=!1,r=!1;for(const i of e.body)if(i.body.length===1&&i.body[0].kind==="search_start")i.body.pop();else{const s=fs(i.body);s?(a=!0,Array.isArray(s)?n.push(...s):n.push(s)):r=!0}a&&!r&&n.forEach(i=>t.add(i))},exit(e,{accuracy:t,passedLookbehind:n,strategy:a}){if(t==="strict"&&n&&a)throw new Error($`Uses "\G" in a way that requires non-strict accuracy`)}},Subroutine({node:e},{jsGroupNameMap:t}){let{ref:n}=e;typeof n=="string"&&!Jn(n)&&(n=Qn(n,t),e.ref=n)}},id={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:n}){const{orphan:a,ref:r}=e;a||n.set(e,[...t.get(r).map(({node:i})=>i)])},CapturingGroup:{enter({node:e,parent:t,replaceWith:n,skip:a},{groupOriginByCopy:r,groupsByName:i,multiplexCapturesToLeftByRef:s,openRefs:c,reffedNodesByReferencer:o}){const l=r.get(e);if(l&&c.has(e.number)){const p=Ne(Vr(e.number),t);o.set(p,c.get(e.number)),n(p);return}c.set(e.number,e),s.set(e.number,[]),e.name&&Dt(s,e.name,[]);const u=s.get(e.name??e.number);for(let p=0;pd.type==="Group"&&!!d.flags)),p=u?$n(a.globalFlags,u):a.globalFlags;od(p,a.currentFlags)||(l=de({flags:ud(p)}),l.body[0].body.push(o))}n(M(l,t),{traverse:!c})}},sd={Backreference({node:e,parent:t,replaceWith:n},a){if(e.orphan){a.highestOrphanBackref=Math.max(a.highestOrphanBackref,e.ref);return}const i=a.reffedNodesByReferencer.get(e).filter(s=>cd(s,e));if(!i.length)n(M(Ge({negate:!0}),t));else if(i.length>1){const s=de({atomic:!0,body:i.reverse().map(c=>Ze({body:[_a(c.number)]}))});n(M(s,t))}else e.ref=i[0].number},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,e.name&&t.groupsByName.get(e.name).get(e).hasDuplicateNameToRemove&&delete e.name},Regex:{exit({node:e},t){const n=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let a=0;a{t.forEach(r=>{a.enable?.[r]&&(delete n.disable[r],n.enable[r]=!0),a.disable?.[r]&&(n.disable[r]=!0)})}),Object.keys(n.enable).length||delete n.enable,Object.keys(n.disable).length||delete n.disable,n.enable||n.disable?n:null}function ud({dotAll:e,ignoreCase:t}){const n={};return(e||t)&&(n.enable={},e&&(n.enable.dotAll=!0),t&&(n.enable.ignoreCase=!0)),(!e||!t)&&(n.disable={},!e&&(n.disable.dotAll=!0),!t&&(n.disable.ignoreCase=!0)),n}function gs(e){if(!e)throw new Error("Node expected");const{body:t}=e;return Array.isArray(t)?t:t?[t]:null}function fs(e){const t=e.find(n=>n.kind==="search_start"||md(n,{negate:!1})||!pd(n));if(!t)return null;if(t.kind==="search_start")return t;if(t.type==="LookaroundAssertion")return t.body[0].body[0];if(t.type==="CapturingGroup"||t.type==="Group"){const n=[];for(const a of t.body){const r=fs(a.body);if(!r)return null;Array.isArray(r)?n.push(...r):n.push(r)}return n}return null}function bs(e,t){const n=gs(e)??[];for(const a of n)if(a===t||bs(a,t))return!0;return!1}function pd({type:e}){return e==="Assertion"||e==="Directive"||e==="LookaroundAssertion"}function dd(e){const t=["Character","CharacterClass","CharacterSet"];return t.includes(e.type)||e.type==="Quantifier"&&e.min&&t.includes(e.body.type)}function md(e,t){const n={negate:null,...t};return e.type==="LookaroundAssertion"&&(n.negate===null||e.negate===n.negate)&&e.body.length===1&&es(e.body[0],{type:"Assertion",kind:"search_start"})}function Jn(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function Ee(e,t){const a=ts(e,{...t,unicodePropertyMap:Ga}).body;return a.length>1||a[0].body.length>1?de({body:a}):a[0].body[0]}function ea(e,t){return e.negate=t,e}function Ne(e,t){return e.parent=t,e}function M(e,t){return ds(e),e.parent=t,e}function hd(e,t){const n=ls(t),a=wa(n.target,"ES2024"),r=wa(n.target,"ES2025"),i=n.rules.recursionLimit;if(!Number.isInteger(i)||i<2||i>20)throw new Error("Invalid recursionLimit; use 2-20");let s=null,c=null;if(!r){const g=[e.flags.ignoreCase];At(e,gd,{getCurrentModI:()=>g.at(-1),popModI(){g.pop()},pushModI(m){g.push(m)},setHasCasedChar(){g.at(-1)?s=!0:c=!0}})}const o={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||s)&&!c)};let l=e;const u={accuracy:n.accuracy,appliedGlobalFlags:o,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:l,originMap:e._originMap,recursionLimit:i,useAppliedIgnoreCase:!!(!r&&s&&c),useFlagMods:r,useFlagV:a,verbose:n.verbose};function p(g){return u.lastNode=l,l=g,Zp(fd[g.type],`Unexpected node type "${g.type}"`)(g,u,p)}const d={pattern:e.body.map(p).join("|"),flags:p(e.flags),options:{...e.options}};return a||(delete d.options.force.v,d.options.disable.v=!0,d.options.unicodeSetsPlugin=null),d._captureTransfers=new Map,d._hiddenCaptures=[],u.captureMap.forEach((g,m)=>{g.hidden&&d._hiddenCaptures.push(m),g.transferTo&&Dt(d._captureTransfers,g.transferTo,[]).push(m)}),d}var gd={"*":{enter({node:e},t){if(Yr(e)){const n=t.getCurrentModI();t.pushModI(e.flags?$n({ignoreCase:n},e.flags).ignoreCase:n)}},exit({node:e},t){Yr(e)&&t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){Ua(U(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},n){t(),_s(e,{firstOnly:!0}).length&&n.setHasCasedChar()},CharacterSet({node:e},t){e.kind==="property"&&ps.has(e.value)&&t.setHasCasedChar()}},fd={Alternative({body:e},t,n){return e.map(n).join("")},Assertion({kind:e,negate:t}){if(e==="string_end")return"$";if(e==="string_start")return"^";if(e==="word_boundary")return t?$`\B`:$`\b`;throw new Error(`Unexpected assertion kind "${e}"`)},Backreference({ref:e},t){if(typeof e!="number")throw new Error("Unexpected named backref in transformed AST");if(!t.useFlagMods&&t.accuracy==="strict"&&t.currentFlags.ignoreCase&&!t.captureMap.get(e).ignoreCase)throw new Error("Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy");return"\\"+e},CapturingGroup(e,t,n){const{body:a,name:r,number:i}=e,s={ignoreCase:t.currentFlags.ignoreCase},c=t.originMap.get(e);return c&&(s.hidden=!0,i>c.number&&(s.transferTo=c.number)),t.captureMap.set(i,s),`(${r?`?<${r}>`:""}${a.map(n).join("|")})`},Character({value:e},t){const n=U(e),a=nt(e,{escDigit:t.lastNode.type==="Backreference",inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(a!==n)return a;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&Ua(n)){const r=us(n);return t.inCharClass?r.join(""):r.length>1?`[${r.join("")}]`:r[0]}return n},CharacterClass(e,t,n){const{kind:a,negate:r,parent:i}=e;let{body:s}=e;if(a==="intersection"&&!t.useFlagV)throw new Error("Use of character class intersection requires min target ES2024");je.bugFlagVLiteralHyphenIsRange&&t.useFlagV&&s.some(Xr)&&(s=[Tn(45),...s.filter(l=>!Xr(l))]);const c=()=>`[${r?"^":""}${s.map(n).join(a==="intersection"?"&&":"")}]`;if(!t.inCharClass){if((!t.useFlagV||je.bugNestedClassIgnoresNegation)&&!r){const u=s.filter(p=>p.type==="CharacterClass"&&p.kind==="union"&&p.negate);if(u.length){const p=de(),d=p.body[0];return p.parent=i,d.parent=p,s=s.filter(g=>!u.includes(g)),e.body=s,s.length?(e.parent=d,d.body.push(e)):p.body.pop(),u.forEach(g=>{const m=Ze({body:[g]});g.parent=m,m.parent=p,p.body.push(m)}),n(p)}}t.inCharClass=!0;const l=c();return t.inCharClass=!1,l}const o=s[0];if(a==="union"&&!r&&o&&((!t.useFlagV||!t.verbose)&&i.kind==="union"&&!(je.bugFlagVLiteralHyphenIsRange&&t.useFlagV)||!t.verbose&&i.kind==="intersection"&&s.length===1&&o.type!=="CharacterClassRange"))return s.map(n).join("");if(!t.useFlagV&&i.type==="CharacterClass")throw new Error("Uses nested character class in a way that requires min target ES2024");return c()},CharacterClassRange(e,t){const n=e.min.value,a=e.max.value,r={escDigit:!1,inCharClass:!0,useFlagV:t.useFlagV},i=nt(n,r),s=nt(a,r),c=new Set;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase){const o=_s(e);wd(o).forEach(u=>{c.add(Array.isArray(u)?`${nt(u[0],r)}-${nt(u[1],r)}`:nt(u,r))})}return`${i}-${s}${[...c].join("")}`},CharacterSet({kind:e,negate:t,value:n,key:a},r){if(e==="dot")return r.currentFlags.dotAll?r.appliedGlobalFlags.dotAll||r.useFlagMods?".":"[^]":$`[^\n]`;if(e==="digit")return t?$`\D`:$`\d`;if(e==="property"){if(r.useAppliedIgnoreCase&&r.currentFlags.ignoreCase&&ps.has(n))throw new Error(`Unicode property "${n}" can't be case-insensitive when other chars have specific case`);return`${t?$`\P`:$`\p`}{${a?`${a}=`:""}${n}}`}if(e==="word")return t?$`\W`:$`\w`;throw new Error(`Unexpected character set kind "${e}"`)},Flags(e,t){return(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":"")+(e.sticky?"y":"")},Group({atomic:e,body:t,flags:n,parent:a},r,i){const s=r.currentFlags;n&&(r.currentFlags=$n(s,n));const c=t.map(i).join("|"),o=!r.verbose&&t.length===1&&a.type!=="Quantifier"&&!e&&(!r.useFlagMods||!n)?c:`(?${xd(e,n,r.useFlagMods)}${c})`;return r.currentFlags=s,o},LookaroundAssertion({body:e,kind:t,negate:n},a,r){return`(?${`${t==="lookahead"?"":"<"}${n?"!":"="}`}${e.map(r).join("|")})`},Quantifier(e,t,n){return n(e.body)+kd(e)},Subroutine({isRecursive:e,ref:t},n){if(!e)throw new Error("Unexpected non-recursive subroutine in transformed AST");const a=n.recursionLimit;return t===0?`(?R=${a})`:$`\g<${t}&R=${a}>`}},bd=new Set(["$","(",")","*","+",".","?","[","\\","]","^","{","|","}"]),_d=new Set(["-","\\","]","^","["]),yd=new Set(["(",")","-","/","[","\\","]","^","{","|","}","!","#","$","%","&","*","+",",",".",":",";","<","=",">","?","@","`","~"]),Zr=new Map([[9,$`\t`],[10,$`\n`],[11,$`\v`],[12,$`\f`],[13,$`\r`],[8232,$`\u2028`],[8233,$`\u2029`],[65279,$`\uFEFF`]]),vd=new RegExp("^\\p{Cased}$","u");function Ua(e){return vd.test(e)}function _s(e,t){const n=!!t?.firstOnly,a=e.min.value,r=e.max.value,i=[];if(a<65&&(r===65535||r>=131071)||a===65536&&r>=131071)return i;for(let s=a;s<=r;s++){const c=U(s);if(!Ua(c))continue;const o=us(c).filter(l=>{const u=l.codePointAt(0);return ur});if(o.length&&(i.push(...o),n))break}return i}function nt(e,{escDigit:t,inCharClass:n,useFlagV:a}){if(Zr.has(e))return Zr.get(e);if(e<32||e>126&&e<160||e>262143||t&&Cd(e))return e>255?`\\u{${e.toString(16).toUpperCase()}}`:`\\x${e.toString(16).toUpperCase().padStart(2,"0")}`;const r=n?a?yd:_d:bd,i=U(e);return(r.has(i)?"\\":"")+i}function wd(e){const t=e.map(r=>r.codePointAt(0)).sort((r,i)=>r-i),n=[];let a=null;for(let r=0;r";let a="";if(t&&n){const{enable:r,disable:i}=t;a=(r?.ignoreCase?"i":"")+(r?.dotAll?"s":"")+(i?"-":"")+(i?.ignoreCase?"i":"")+(i?.dotAll?"s":"")}return`${a}:`}function kd({kind:e,max:t,min:n}){let a;return!n&&t===1?a="?":!n&&t===1/0?a="*":n===1&&t===1/0?a="+":n===t?a=`{${n}}`:a=`{${n},${t===1/0?"":t}}`,a+{greedy:"",lazy:"?",possessive:"+"}[e]}function Yr({type:e}){return e==="CapturingGroup"||e==="Group"||e==="LookaroundAssertion"}function Cd(e){return e>47&&e<58}function Xr({type:e,value:t}){return e==="Character"&&t===45}var Fd=class xa extends RegExp{#t=new Map;#e=null;#a;#n=null;#r=null;rawOptions={};get source(){return this.#a||"(?:)"}constructor(t,n,a){const r=!!a?.lazyCompile;if(t instanceof RegExp){if(a)throw new Error("Cannot provide options when copying a regexp");const i=t;super(i,n),this.#a=i.source,i instanceof xa&&(this.#t=i.#t,this.#n=i.#n,this.#r=i.#r,this.rawOptions=i.rawOptions)}else{const i={hiddenCaptures:[],strategy:null,transfers:[],...a};super(r?"":t,n),this.#a=t,this.#t=$d(i.hiddenCaptures,i.transfers),this.#r=i.strategy,this.rawOptions=a??{}}r||(this.#e=this)}exec(t){if(!this.#e){const{lazyCompile:r,...i}=this.rawOptions;this.#e=new xa(this.#a,this.flags,i)}const n=this.global||this.sticky,a=this.lastIndex;if(this.#r==="clip_search"&&n&&a){this.lastIndex=0;const r=this.#i(t.slice(a));return r&&(Ed(r,a,t,this.hasIndices),this.lastIndex+=a),r}return this.#i(t)}#i(t){this.#e.lastIndex=this.lastIndex;const n=super.exec.call(this.#e,t);if(this.lastIndex=this.#e.lastIndex,!n||!this.#t.size)return n;const a=[...n];n.length=1;let r;this.hasIndices&&(r=[...n.indices],n.indices.length=1);const i=[0];for(let s=1;s{const c=i[s];c&&(i[s]=[c[0]+t,c[1]+t])})}}function $d(e,t){const n=new Map;for(const a of e)n.set(a,{hidden:!0});for(const[a,r]of t)for(const i of r)Dt(n,i,{}).transferTo=a;return n}function jd(e){const t=/(?\((?:\?<(?![=!])(?[^>]+)>|(?!\?)))|\\?./gsu,n=new Map;let a=0,r=0,i;for(;i=t.exec(e);){const{0:s,groups:{capture:c,name:o}}=i;s==="["?a++:a?s==="]"&&a--:c&&(r++,o&&n.set(r,o))}return n}function Sd(e,t){const n=Ad(e,t);return n.options?new Fd(n.pattern,n.flags,n.options):new RegExp(n.pattern,n.flags)}function Ad(e,t){const n=ls(t),a=ts(e,{flags:n.flags,normalizeUnknownPropertyNames:!0,rules:{captureGroup:n.rules.captureGroup,singleline:n.rules.singleline},skipBackrefValidation:n.rules.allowOrphanBackrefs,unicodePropertyMap:Ga}),r=ad(a,{accuracy:n.accuracy,asciiWordBoundaries:n.rules.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,bestEffortTarget:n.target}),i=hd(r,n),s=Wp(i.pattern,{captureTransfers:i._captureTransfers,hiddenCaptures:i._hiddenCaptures,mode:"external"}),c=Up(s.pattern),o=Gp(c.pattern,{captureTransfers:s.captureTransfers,hiddenCaptures:s.hiddenCaptures}),l={pattern:o.pattern,flags:`${n.hasIndices?"d":""}${n.global?"g":""}${i.flags}${i.options.disable.v?"u":"v"}`};if(n.avoidSubclass){if(n.lazyCompileLength!==1/0)throw new Error("Lazy compilation requires subclass")}else{const u=o.hiddenCaptures.sort((m,v)=>m-v),p=Array.from(o.captureTransfers),d=r._strategy,g=l.pattern.length>=n.lazyCompileLength;(u.length||p.length||d||g)&&(l.options={...u.length&&{hiddenCaptures:u},...p.length&&{transfers:p},...d&&{strategy:d},...g&&{lazyCompile:g}})}return l}const Kr=4294967295;class Rd{constructor(t,n={}){this.patterns=t,this.options=n;const{forgiving:a=!1,cache:r,regexConstructor:i}=n;if(!i)throw new Error("Option `regexConstructor` is not provided");this.regexps=t.map(s=>{if(typeof s!="string")return s;const c=r?.get(s);if(c){if(c instanceof RegExp)return c;if(a)return null;throw c}try{const o=i(s);return r?.set(s,o),o}catch(o){if(r?.set(s,o),a)return null;throw o}})}regexps;findNextMatchSync(t,n,a){const r=typeof t=="string"?t:t.content,i=[];function s(c,o,l=0){return{index:c,captureIndices:o.indices.map(u=>u==null?{start:Kr,end:Kr,length:0}:{start:u[0]+l,end:u[1]+l,length:u[1]-u[0]})}}for(let c=0;co[1].index));for(const[o,l,u]of i)if(l.index===c)return s(o,l,u)}return null}}function Td(e,t){return Sd(e,{global:!0,hasIndices:!0,lazyCompileLength:3e3,rules:{allowOrphanBackrefs:!0,asciiWordBoundaries:!0,captureGroup:!0,recursionLimit:5,singleline:!0},...t})}function Nd(e={}){const t=Object.assign({target:"auto",cache:new Map},e);return t.regexConstructor||=n=>Td(n,{target:t.target}),{createScanner(n){return new Rd(n,t)},createString(n){return{content:n}}}}const Id=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":[{"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":[{"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\\\\h{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"}')),ys=[Id],Od=Object.freeze(JSON.parse(`{"displayName":"JavaScript","name":"javascript","patterns":[{"include":"#directives"},{"include":"#statements"},{"include":"#shebang"}],"repository":{"access-modifier":{"match":"(??\\\\[]|^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":"(?:(?)","name":"meta.arrow.js"},{"begin":"(?:(?]|=[^<]|<\\\\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":"(?\\\\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":"((@)a(?:ccess|pi))\\\\s+(p(?:rivate|rotected|ublic))\\\\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":"()|(?=\\\\*/)","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-Z_a-z][]$.\\\\[\\\\w]*(?:\\\\s*,\\\\s*[$A-Z_a-z][]$.\\\\[\\\\w]*)*)"},{"begin":"((@)template)\\\\s+(?=\\\\{)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^]$A-\\\\[_a-{}])","patterns":[{"include":"#jsdoctype"},{"match":"([$A-Z_a-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-Z_a-z][]$.\\\\[\\\\w]*)"},{"begin":"((@)typedef)\\\\s+(?=\\\\{)","beginCaptures":{"1":{"name":"storage.type.class.jsdoc"},"2":{"name":"punctuation.definition.block.tag.jsdoc"}},"end":"(?=\\\\s|\\\\*/|[^]$A-\\\\[_a-{}])","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-\\\\[_a-{}])","patterns":[{"include":"#jsdoctype"},{"match":"([$A-Z_a-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-\\\\[_a-{}])","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":"(?)))|((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*(?{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\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":"(?:(??}]|\\\\|\\\\||&&|!==|$|((?>>??|\\\\|)=","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":"(?)))|((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*(?{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\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":"(?\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\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":"(?)))|((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*\\\\d)))\\\\s*(#?\\\\p{upper}[$_\\\\d[:upper:]]*)(?![$_[:alnum:]])"},{"captures":{"1":{"name":"punctuation.accessor.js"},"2":{"name":"punctuation.accessor.optional.js"},"3":{"name":"variable.other.property.js"}},"match":"(?:(\\\\.)|(\\\\?\\\\.(?!\\\\s*\\\\d)))\\\\s*(#?[$_[:alpha:]][$_[:alnum:]]*)"},{"match":"(\\\\p{upper}[$_\\\\d[:upper:]]*)(?![$_[:alnum:]])","name":"variable.other.constant.js"},{"match":"[$_[:alpha:]][$_[:alnum:]]*","name":"variable.other.readwrite.js"}]},"if-statement":{"patterns":[{"begin":"(??}]|\\\\|\\\\||&&|!==|$|([!=]==?)|(([\\\\&^|~]\\\\s*)?[$_[:alpha:]][$_[:alnum:]]*\\\\s+instanceof(?![$_[:alnum:]])(?:(?=\\\\.\\\\.\\\\.)|(?!\\\\.)))|((?))","end":"(/>)|()","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:]]*)(?)","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":"(?=|/\\\\*|//)"},"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:]]*)(?))","end":"(?!(<)\\\\s*(?:([$_[:alpha:]][-$._[:alnum:]]*)(?))","patterns":[{"include":"#jsx-tag"}]},"jsx-tag-without-attributes":{"begin":"(<)\\\\s*(?:([$_[:alpha:]][-$._[:alnum:]]*)(?)","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":"()","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:]]*)(?))","end":"(?!(<)\\\\s*(?:([$_[:alpha:]][-$._[:alnum:]]*)(?))","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":"(?]|=[^<]|<\\\\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":"(?]|=[^<]|<\\\\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((??}]|\\\\|\\\\||&&|!==|$|((?]|=[^<]|<\\\\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":"(?]|=[^<]|<\\\\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((?)))|((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":"(??}]|\\\\|\\\\||&&|!==|$|^|((?]|=[^<]|<\\\\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":"(?)))|((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*(?{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\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":"(?:(?])","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":"(?|&&|\\\\|\\\\||\\\\*/)\\\\s*(/)(?![*/])(?=(?:[^()/\\\\[\\\\\\\\]|\\\\\\\\.|\\\\[([^]\\\\\\\\]|\\\\\\\\.)+]|\\\\(([^)\\\\\\\\]|\\\\\\\\.)+\\\\))+/([dgimsuvy]+|(?![*/])|(?=/\\\\*))(?!\\\\s*[$0-9A-Z_a-z]))","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":"((?)"},{"match":"[*+?]|\\\\{(\\\\d+,\\\\d+|\\\\d+,|,\\\\d+|\\\\d+)}\\\\??","name":"keyword.operator.quantifier.regexp"},{"match":"\\\\|","name":"keyword.operator.or.regexp"},{"begin":"(\\\\()((\\\\?=)|(\\\\?!)|(\\\\?<=)|(\\\\?)?","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\\\\h{2}|u\\\\h{4}))|(\\\\\\\\c[A-Z])|(\\\\\\\\.))-(?:[^]\\\\\\\\]|(\\\\\\\\(?:[0-7]{3}|x\\\\h{2}|u\\\\h{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":"(?]|=[^<]|<\\\\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":"(?\\\\[]|=>|&(?!&)|\\\\|(?!\\\\|)))))([^(<>]|(\\\\(([^()]|(\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)))*\\\\))|(?<==)>|<\\\\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*\\\\D)(\\\\?)(?!\\\\?)","beginCaptures":{"1":{"name":"keyword.operator.ternary.js"}},"end":"\\\\s*(:)","endCaptures":{"1":{"name":"keyword.operator.ternary.js"}},"patterns":[{"include":"#expression"}]},"this-literal":{"match":"(?])|((?<=[]$)>_}[: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":"(?)","patterns":[{"include":"#comment"},{"include":"#type-parameters"}]},{"begin":"(?))))))","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":"(?)","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*\\\\d)))"},{"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":"(?)","endCaptures":{"1":{"name":"punctuation.definition.typeparameters.end.js"}},"name":"meta.type.parameters.js","patterns":[{"include":"#comment"},{"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":"(?:(?)))))))|(:\\\\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":"(?:(??{|}]|(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":"(?)))|((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*(?{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\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":"(?=$|^|[,;=}]|((?)))|((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*(?{}]|<([^<>]|<([^<>]|<[^<>]+>)+>)+>|\\\\([^()]+\\\\)|\\\\{[^{}]+})+\\\\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":"(?=$|^|[,;=}]|((?\\\\s*$)","beginCaptures":{"1":{"name":"keyword.operator.assignment.js"}},"end":"(?=$|^|[]),;}]|((?>>","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":"\\\\\\\\\\\\h{1,6}","name":"constant.character.escape.codepoint.css"},{"begin":"\\\\\\\\$\\\\s*","end":"^(?]|/\\\\*)"},"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":"(?i)(?<=^|[,\\\\s]|\\\\*/)(?:(all|print|screen|speech)|(aural|braille|embossed|handheld|projection|tty|tv))(?=$|[,;{\\\\s]|/\\\\*)"},"numeric-values":{"patterns":[{"captures":{"1":{"name":"punctuation.definition.constant.css"}},"match":"(#)(?:\\\\h{3,4}|\\\\h{6}|\\\\h{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":"(?i)(?\\\\[{|~\\\\s]|/\\\\*)|(?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))*(?:[]!\\"%-(*;\\\\[{|~\\\\s]|/\\\\*)","name":"entity.other.attribute-name.class.css"},{"captures":{"1":{"name":"punctuation.definition.entity.css"},"2":{"patterns":[{"include":"#escapes"}]}},"match":"(#)(-?(?![0-9])(?:[-0-9A-Z_a-z[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{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]]|\\\\\\\\(?:\\\\h{1,6}|.))+|\\\\*)(?=\\\\|(?![=\\\\s]|$|])(?:-?(?!\\\\d)|[-\\\\\\\\\\\\w[^\\\\x00-\\\\x7F]]))"},{"captures":{"1":{"name":"entity.other.attribute-name.css","patterns":[{"include":"#escapes"}]}},"match":"(-?(?!\\\\d)(?>[-\\\\w[^\\\\x00-\\\\x7F]]|\\\\\\\\(?:\\\\h{1,6}|.))+)\\\\s*(?=[]$*=^|~]|/\\\\*)"}]},{"include":"#pseudo-classes"},{"include":"#pseudo-elements"},{"include":"#functional-pseudo-classes"},{"match":"(?\\\\[{|~\\\\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":"(?)","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((?:n|ff)line)|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((?:|meta)data)))?|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"}},"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"}},"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"}},"end":"(?=\\\\s*+[^=\\\\s])","name":"meta.attribute.$1.html","patterns":[{"include":"#attribute-interior"}]},{"begin":"([^\\\\x00- \\"'/<=>\\\\x7F-\\\\x{9F}﷐-﷯￾￿🿾🿿𯿾𯿿𿿾𿿿\\\\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"}},"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":"","endCaptures":{"0":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.metadata.cdata.html"},"comment":{"begin":"","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":{"patterns":[{"include":"#xml-processing"},{"include":"#comment"},{"include":"#doctype"},{"include":"#cdata"},{"include":"#tags-valid"},{"include":"#entities"}]},"doctype":{"begin":"","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"}},"match":"(&)(?=[A-Za-z])((a(s(ymp(eq)?|cr|t)|n(d(slope|[dv]|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a([a-h]))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|[Ee]|acir)?|elig|f(r)?|w((?:con|)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([DUdu])?|times|H([DUdu])?|d([LRlr])|u([LRlr])|plus|D([LRlr])|v([HLRhlr])?|U([LRlr])|V([HLRhlr])?|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([24])|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([lr])|p(s|c([au]p)|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((?:con|)int)|lubs(uit)?|a(cute|p(s|c([au]p)|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((?:Double|)Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))|(d(s(c([ry])|trok|ol)|har([lr])|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((?:Down|)Arrow)|VerticalBar|L(ong(RightArrow|Left((?:Right|)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([ah])|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(D??ot)|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([34]))?|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((?:|Very)SmallSquare)|acr)))|(f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(l??ig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1([2-68])|78|2([35])|3([458])|45|5([68])))))|F(scr|cy|illed((?:|Very)SmallSquare)|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([el])?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(q?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([Eaj])?|a(cute|p|mma(d)?)|rave|g(g)?|breve))|(h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok((?:lef|righ)tarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks([ew]arow)|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|[Ev])?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(i??nt)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f([fr])|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([eg])?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(d??il)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i([ef])?|Par))?|Har|o(ng(left((?:|right)arrow)|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((?:d|us)har))|ur((?:ds|u)har)|jcy|par(lt)?|e(s(s(sim|dot|eq(q?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([du])|e)|ac([ek]))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left((?:|right)arrow)|rightarrow|Left((?:Right|)Arrow))|pf|wer((?:Righ|Lef)tArrow))|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((?:lti|)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|[er])?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|[Ee])?|b(set(eq(q)?)?|[Ee])?)|par|qsu([bp]e)|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([abc]))?|in(dot|v([abc])|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([et]))|fr|w(near|ar(hk|r(ow)?)|Arr)|V([Dd]ash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft((?:|right)arrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr([cw])?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft((?:|right)arrow)|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((?:Slant|)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((?:n|ck)Space)|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)?|[fm])?|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((?:Double|)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([ou])|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(d??il)|aron)|Barr|t(hree|imes|ri([ef]|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([de]|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([du])|e)|ac([ek]))|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([fv])?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot([be])?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u([bp])|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n([Ee])|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u([bp])|et(neq(q)?|eq(q)?)?)|n([Ee])|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([ef]))?)|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((?:Right|Down|Up|Left)Arrow)|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([ry])|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((?:lef|righ)tarrow))|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((?:n|ck)Space)|e(ta|refore))|c(y|edil|aron)|S(H??cy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a([bu])|ripleDot))|(u(scr|h(ar([lr])|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((?:Righ|Lef)tArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))|(v(s(cr|u(pn([Ee])|bn([Ee])))|nsu([bp])|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([Aa]rr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l([Aa]rr)|r([Aa]rr)|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(n?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]\\\\h+(;)","name":"constant.character.entity.numeric.hexadecimal.html"},{"match":"&(?=[0-9A-Za-z]+;)","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)()","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([bp]scriptshift)|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":"([^\\\\x00- \\"'/<=>\\\\x7F-\\\\x{9F}﷐-﷯￾￿🿾🿿𯿾𯿿𿿾𿿿\\\\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"}},"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)()|(/>)|(?=)\\\\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)(<)(m(?:[inos]|space|text|aligngroup|alignmark))(?=\\\\s|/?>)(([^\\"'>]|\\"[^\\"]*\\"|'[^']*')*)(/>)","name":"meta.element.inline.math.$2.html"},{"begin":"(?i)(<)(m(?:[inos]|space|text|aligngroup|alignmark))(?=\\\\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)()|(/>)|(?=)\\\\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)()|(/>)|(?=)\\\\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)()|(/>)|(?=)\\\\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)()","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([hv])|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([12]|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS((?:cript|tyle)Type)|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([XY])?|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([XYZ]))?|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-([xy])|adv-y)))|alues)|k([123]|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([XY]|errerPolicy)|l)|adius|x)?|g([12]|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x([12]|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk((?:Content|)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":"([^\\\\x00- \\"'/<=>\\\\x7F-\\\\x{9F}﷐-﷯￾￿🿾🿿𯿾𯿿𿿾𿿿\\\\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"}},"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)()|(/>)|(?=)\\\\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)()|(/>)|(?=)\\\\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)()|(/>)|(?=)\\\\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)()|(/>)|(?=)\\\\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)()|(/>)|(?=)\\\\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)()|(/>)|(?=)\\\\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":"(\\\\s]*))(?)","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":"(?=)","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":"(?=|type(?=[=\\\\s])(?!\\\\s*=\\\\s*(''|\\"\\"|([\\"']?)(text/(javascript(1\\\\.[0-5])?|x-javascript|jscript|livescript|(x-)?ecmascript|babel)|application/((?:(x-)?jav|(x-)?ecm)ascript)|module)[\\"'>\\\\s]))))","name":"meta.tag.metadata.script.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?i:(?=type\\\\s*=\\\\s*([\\"']?)text/(x-handlebars|(x-(handlebars-)?|ng-)?template|html)[\\"'>\\\\s]))","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":"(?=)","endCaptures":{"1":{"name":"punctuation.definition.tag.end.html"}},"name":"meta.tag.metadata.script.start.html","patterns":[{"include":"#attribute"}]},{"begin":"(?!\\\\G)","end":"(?=)","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)()","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)()","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)()","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)()","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)()","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)()","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)()","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)()","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-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌‍‿⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-\\\\x{EFFFF}]*-[-.0-9A-Z_a-z·À-ÖØ-öø-ͽͿ-῿‌‍‿⁀⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-\\\\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":"()","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"]}`)),Pd=[...vs,...ws,Dd],qd=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":"(?","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":"(?>>?|[\\\\^~])","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-Z_a-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(?)?(\\\\()","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-Z_a-z][$.0-9A-Z_a-z]*","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-Z_a-z][$.0-9A-Z_a-z]*","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-Z_a-z][$\\\\w]*([]$,\\\\[\\\\w][],\\\\[\\\\w\\\\s]*)?\\\\s*([:;=]))","end":"(?=[:;=])","name":"meta.definition.variable.java","patterns":[{"captures":{"1":{"name":"variable.other.definition.java"}},"match":"([$A-Z_a-z][$\\\\w]*)(?=\\\\s*(\\\\[])*\\\\s*([,:;=]))"},{"include":"#all-types"},{"include":"#code"}]},"variables-local":{"begin":"(?=\\\\b(var)\\\\b\\\\s+[$A-Z_a-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-Z_a-z][$\\\\w]*)(?=\\\\s*(\\\\[])*\\\\s*([:;=]))"},{"include":"#code"}]}},"scopeName":"source.java"}`)),Md=[qd],zd=Object.freeze(JSON.parse(`{"displayName":"XML","name":"xml","patterns":[{"begin":"(<\\\\?)\\\\s*([-0-9A-Z_a-z]+)","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":"()","name":"meta.tag.sgml.doctype.xml","patterns":[{"include":"#internalSubset"}]},{"include":"#comments"},{"begin":"(<)((?:([-0-9A-Z_a-z]+)(:))?([-0-:A-Z_a-z]+))(?=(\\\\s[^>]*)?>)","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":"(>)()","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":"()","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":"","endCaptures":{"0":{"name":"punctuation.definition.string.end.xml"}},"name":"string.unquoted.cdata.xml"}],"repository":{"EntityDecl":{"begin":"()","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":"","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-Z_a-z][-.0-:A-Z_a-z]*|#[0-9]+|#x\\\\h+)(;)","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-Z_a-z][-.0-:A-Z_a-z]*)(;)","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"]}`)),Bd=[...Md,zd],Gd=Object.freeze(JSON.parse('{"displayName":"SQL","name":"sql","patterns":[{"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|stdevp??|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_coun|get_bi|left_shif|right_shif|set_bi)t)\\\\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":"(?)","name":"meta.namespace.php","patterns":[{"include":"#comments"},{"captures":{"0":{"patterns":[{"match":"\\\\\\\\","name":"punctuation.separator.inheritance.php"}]}},"match":"(?i)[0-9\\\\\\\\_a-z\\\\x7F-\\\\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":"(?i)\\\\b(as)\\\\s+(final|abstract|public|private|protected|static)\\\\s+([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\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":"(?i)\\\\b(as)\\\\s+([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)"},{"captures":{"1":{"name":"keyword.other.use-insteadof.php"},"2":{"name":"support.class.php"}},"match":"(?i)\\\\b(insteadof)\\\\s+([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)"},{"match":";","name":"punctuation.terminator.expression.php"},{"include":"#use-inner"}]},{"include":"#use-inner"}]},{"begin":"(?i)\\\\b(trait)\\\\s+([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\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":"(?i)\\\\b(interface)\\\\s+([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\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":"(?i)\\\\b(enum)\\\\s+([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)(?:\\\\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\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)"},{"include":"#class-constant"},{"include":"$self"}]}]},{"begin":"(?i)\\\\b(?:((?:(?:final|abstract|readonly)\\\\s+)*)(class)\\\\s+([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)|(new)\\\\b\\\\s*(#\\\\[.*])?\\\\s*(?:(readonly)\\\\s+)?\\\\b(class)\\\\b)","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\\\\x7F-\\\\x{10FFFF}])","end":"(?i)([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)(?![0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}])","endCaptures":{"1":{"name":"support.class.exception.php"}},"patterns":[{"include":"#namespace"}]}]},"2":{"name":"variable.other.php"},"3":{"name":"punctuation.definition.variable.php"}},"match":"(?i)([0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(?:\\\\s*\\\\|\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)*)\\\\s*((\\\\$+)[_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)?"}]},{"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\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)\\\\s*(?=[),])"}]},{"captures":{"1":{"name":"keyword.operator.return-value.php"},"2":{"patterns":[{"include":"#php-types"}]}},"match":"(?i)(:)\\\\s*((?:\\\\?\\\\s*)?[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|(?:[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|\\\\(\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(?:\\\\s*&\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)+\\\\s*\\\\))(?:\\\\s*[\\\\&|]\\\\s*(?:[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|\\\\(\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(?:\\\\s*&\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)+\\\\s*\\\\)))+)(?=\\\\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":"(?i)(:)\\\\s*((?:\\\\?\\\\s*)?[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|(?:[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|\\\\(\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(?:\\\\s*&\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)+\\\\s*\\\\))(?:\\\\s*[\\\\&|]\\\\s*(?:[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|\\\\(\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(?:\\\\s*&\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)+\\\\s*\\\\)))+)(?=\\\\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":"(?i)(\\\\))\\\\s*(:\\\\s*(?:\\\\?\\\\s*)?(?!\\\\s)[\\\\&()0-9\\\\\\\\_a-z|\\\\x7F-\\\\x{10FFFF}\\\\s]+(?)","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)\\\\bconst\\\\b","name":"storage.type.const.php"},{"match":"(?i)\\\\b(global|abstract|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)(?=[^$0-9\\\\\\\\_a-z\\\\x7F-\\\\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\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)"},{"captures":{"1":{"name":"entity.name.goto-label.php"}},"match":"(?i)^\\\\s*([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*(?)","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":"([0-9A-Z\\\\\\\\_a-z\\\\x7F-\\\\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\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*\\\\\\\\)","end":"(?i)([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)?(?![0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}])","endCaptures":{"1":{"name":"support.attribute.php"}},"patterns":[{"include":"#namespace"}]},{"captures":{"1":{"name":"punctuation.separator.inheritance.php"}},"match":"(?i)(\\\\\\\\)?\\\\b(Attribute|SensitiveParameter|AllowDynamicProperties|ReturnTypeWillChange|Override|Deprecated)\\\\b","name":"support.attribute.builtin.php"},{"begin":"(?i)(?=[\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}])","end":"(?i)([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)?(?![0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}])","endCaptures":{"1":{"name":"support.attribute.php"}},"patterns":[{"include":"#namespace"}]}]},"class-builtin":{"patterns":[{"captures":{"1":{"name":"punctuation.separator.inheritance.php"}},"match":"(?i)(\\\\\\\\)?\\\\b(Attribute|(A(?:PC|ppend))Iterator|Array(Access|Iterator|Object)|Bad(Function|Method)CallException|(Ca(?:ching|llbackFilter))Iterator|Collator|Collectable|Cond|Countable|CURLFile|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference|Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath)|(Error)?Exception|EmptyIterator|finfo|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)?|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?|FANNConnection|(Fil(?:ter|esystem))Iterator|Gender\\\\\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)?|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page)|Http(((?:In|De)flate)?Stream|Message|Request(Pool)?|Response|QueryString)|HRTime\\\\\\\\(PerformanceCounter|StopWatch)|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone)|Imagick(Draw|Pixel(Iterator)?)?|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)?|JsonSerializable|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame))|Lapack|(L(?:ength|ocale|ogic))Exception|LimitIterator|Lua(Closure)?|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch|Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp|UpdateBatch|Write(Batch|ConcernException))?|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex|mysqli(_(driver|stmt|warning|result))?|MysqlndUh(Connection|PreparedStatement)|NoRewindIterator|Normalizer|NumberFormatter|OCI-(Collection|Lob)|OuterIterator|(O(?:utOf(Bounds|Range)|verflow))Exception|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool|QuickHash(Int(S(?:et|tringHash))|StringIntHash)|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator|Reflection(Attribute|Class(Constant)?|Constant|Enum((?:Unit|Backed)Case)?|Fiber|Function(Abstract)?|Generator|(Named|Union|Intersection)?Type|Method|Object|Parameter|Property|Reference|(Zend)?Extension)?|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater)|SAM(Connection|Message)|SCA(_((?:Soap|Local)Proxy))?|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?)|Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence)|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP|Soap(Client|Fault|Header|Param|Server|Var)|SphinxClient|Spoofchecker|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(M(?:ax|in))?Heap|Observer|ObjectStorage|(Priority)?Queue|Stack|Subject|Type|TempFileObject)|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered)|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore)|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable|UConverter|(Un(?:derflow|expectedValue))Exception|V8Js(Exception)?|Varnish(Admin|Log|Stat)|Worker|Weak(Map|Ref)|XML(Diff\\\\\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar)|Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract|Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http)|Response_Abstract|Router|Session|View_(Simple|Interface))|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?)|ZipArchive|ZMQ(Context|Device|Poll|Socket)?)\\\\b","name":"support.class.builtin.php"}]},"class-constant":{"patterns":[{"captures":{"1":{"name":"storage.type.const.php"},"2":{"patterns":[{"include":"#php-types"}]},"3":{"name":"constant.other.php"}},"match":"(?i)\\\\b(const)\\\\s+(?:((?:\\\\?\\\\s*)?[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|(?:[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|\\\\(\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(?:\\\\s*&\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)+\\\\s*\\\\))(?:\\\\s*[\\\\&|]\\\\s*(?:[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|\\\\(\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(?:\\\\s*&\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)+\\\\s*\\\\)))+)\\\\s+)?([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)"}]},"class-extends":{"patterns":[{"begin":"(?i)(extends)\\\\s+","beginCaptures":{"1":{"name":"storage.modifier.extends.php"}},"end":"(?i)(?=[^0-9A-Z\\\\\\\\_a-z\\\\x7F-\\\\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\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*\\\\\\\\)","end":"(?i)([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)?(?![0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}])","endCaptures":{"1":{"name":"support.class.php"}},"patterns":[{"include":"#namespace"}]},{"include":"#class-builtin"},{"begin":"(?i)(?=[\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}])","end":"(?i)([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)?(?![0-9\\\\\\\\_a-z\\\\x7F-\\\\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_(M(?:AJOR|INOR))|BUILD|SUITEMASK|SP_(M(?:AJOR|INOR))|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-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|[23]|PI)|2_(SQRT)?PI|PI(_([24]))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)|MON_([1-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_(N(?:MTOKEN(S)?|OTATION|ODE))|CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)|MHASH_(RIPEMD(128|160|256|320)|GOST|MD([245])|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)|CRC23(B)?|TIGER(1(?:28|60))?|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_(D(?:EFAULT_VALUE_FLAG|ATA))|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([26])|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_(RE(?:QUIRED|SULT)))|CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)|CAST_(AS_STREAM|FOR_SELECT)|(I(?:GNORE|S))_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|(S(?:IZE|PEED))_((?:DOWN|UP)LOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME|CONNECT_TIME|CONTENT_(TYPE|LENGTH_((?:DOWN|UP)LOAD))|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|(P(?:RIVATE|UBLIC))_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([45]))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)|E_((RE(?:CV|AD))_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_([01])|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)|IPRESOLVE_(V([46])|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|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_(([FRWX])_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([46])|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\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*","name":"constant.other.php"}]},"function-call":{"patterns":[{"begin":"(\\\\\\\\?(?)","endCaptures":{"0":{"name":"punctuation.definition.arguments.end.bracket.round.php"}},"name":"meta.function-call.php","patterns":[{"include":"#named-arguments"},{"include":"$self"}]},{"begin":"(\\\\\\\\)?(?)","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":"(?i)(?:((?:\\\\?\\\\s*)?[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|(?:[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|\\\\(\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(?:\\\\s*&\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)+\\\\s*\\\\))(?:\\\\s*[\\\\&|]\\\\s*(?:[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|\\\\(\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(?:\\\\s*&\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)+\\\\s*\\\\)))+)\\\\s+)?((?:(&)\\\\s*)?(\\\\.\\\\.\\\\.)(\\\\$)[_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)(?=\\\\s*(?:[),]|/[*/]|#|$))","name":"meta.function.parameter.variadic.php"},{"begin":"(?i)((?:\\\\?\\\\s*)?[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|(?:[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|\\\\(\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(?:\\\\s*&\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)+\\\\s*\\\\))(?:\\\\s*[\\\\&|]\\\\s*(?:[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+|\\\\(\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(?:\\\\s*&\\\\s*[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)+\\\\s*\\\\)))+)\\\\s+((?:(&)\\\\s*)?(\\\\$)[_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)","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":"(?i)((?:(&)\\\\s*)?(\\\\$)[_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)(?=\\\\s*(?:[),]|/[*/]|#|$))","name":"meta.function.parameter.no-default.php"},{"begin":"(?i)((?:(&)\\\\s*)?(\\\\$)[_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)\\\\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\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)(\\\\1)\\\\s*$)","end":"(?!\\\\G)","name":"string.unquoted.heredoc.php","patterns":[{"include":"#heredoc_interior"}]},{"begin":"(?=<<<\\\\s*'([A-Z_a-z]+[0-9A-Z_a-z]*)'\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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*(\\"?)(J(?:AVASCRIPT|S))(\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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(?=[-\\\\t !,.0-9?_a-z\\\\x7F-\\\\x{10FFFF}[^\\\\x00-\\\\x7F]]*$)","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)(?![0-9A-Z_a-z\\\\x7F-\\\\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\\\\x7F-\\\\x{10FFFF}]+[0-9_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\x{10FFFF}])","endCaptures":{"1":{"name":"keyword.operator.heredoc.php"}},"patterns":[{"include":"#interpolation"}]}]},"inheritance-single":{"patterns":[{"begin":"(?i)(?=\\\\\\\\?[_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*\\\\\\\\)","end":"(?i)([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)?(?=[^0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}])","endCaptures":{"1":{"name":"entity.other.inherited-class.php"}},"patterns":[{"include":"#namespace"}]},{"include":"#class-builtin"},{"include":"#namespace"},{"match":"(?i)[_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*","name":"entity.other.inherited-class.php"}]},"instantiation":{"patterns":[{"captures":{"1":{"name":"keyword.other.new.php"},"2":{"patterns":[{"match":"(?i)(parent|static|self)(?![0-9_a-z\\\\x7F-\\\\x{10FFFF}])","name":"storage.type.php"},{"include":"#class-name"},{"include":"#variable-name"}]}},"match":"(?i)(new)\\\\s+(?!class\\\\b)([$0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)(?![(0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}])"},{"begin":"(?i)(new)\\\\s+(?!class\\\\b)([$0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)\\\\s*(\\\\()","beginCaptures":{"1":{"name":"keyword.other.new.php"},"2":{"patterns":[{"match":"(?i)(parent|static|self)(?![0-9_a-z\\\\x7F-\\\\x{10FFFF}])","name":"storage.type.php"},{"include":"#class-name"},{"include":"#variable-name"}]},"3":{"name":"punctuation.definition.arguments.begin.bracket.round.php"}},"contentName":"meta.function-call.php","end":"\\\\)","endCaptures":{"0":{"name":"punctuation.definition.arguments.end.bracket.round.php"}},"patterns":[{"include":"#named-arguments"},{"include":"$self"}]}]},"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\\\\h{1,2}","name":"constant.character.escape.hex.php"},{"match":"\\\\\\\\u\\\\{\\\\h+}","name":"constant.character.escape.unicode.php"},{"match":"\\\\\\\\[$\\\\\\\\efnrtv]","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\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\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\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)\\\\s*(:)(?!:)"},"namespace":{"begin":"(?i)(?:(namespace)|[_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)?(\\\\\\\\)","beginCaptures":{"1":{"name":"variable.language.namespace.php"},"2":{"name":"punctuation.separator.inheritance.php"}},"end":"(?i)(?![0-9_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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*'(J(?:AVASCRIPT|S))'(\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\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(?=[-\\\\t !,.0-9?_a-z\\\\x7F-\\\\x{10FFFF}[^\\\\x00-\\\\x7F]]*$)","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)(?![0-9A-Z_a-z\\\\x7F-\\\\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\\\\x7F-\\\\x{10FFFF}]+[0-9_a-z\\\\x7F-\\\\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)(?![0-9A-Z_a-z\\\\x7F-\\\\x{10FFFF}])","endCaptures":{"1":{"name":"keyword.operator.nowdoc.php"}}}]},"null_coalescing":{"match":"\\\\?\\\\?","name":"keyword.operator.null-coalescing.php"},"numbers":{"patterns":[{"match":"0[Xx]\\\\h+(?:_\\\\h+)*","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\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\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\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\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":"(?i)(?=[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+(::)\\\\s*([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)?)","end":"(?i)(::)\\\\s*([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\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+((p(?:ublic|rivate|rotected))|(.+))\\\\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-Z\\\\\\\\_a-z\\\\x7F-\\\\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":"[\\\\&|]","name":"punctuation.separator.delimiter.php"}]},{"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":"(?i)\\\\??[0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+([\\\\&|]\\\\??[0-9\\\\\\\\_a-z\\\\x7F-\\\\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)([0-9\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]+)(\\\\[])"},"regex-double-quoted":{"begin":"\\"/(?=(\\\\\\\\.|[^\\"/])++/[ADSUXeimsux]*\\")","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.php"}},"end":"(/)([ADSUXeimsux]*)(\\")","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":"'/(?=(\\\\\\\\(?:\\\\\\\\(?:\\\\\\\\['\\\\\\\\]?|[^'])|.)|[^'/])++/[ADSUXeimsux]*')","beginCaptures":{"0":{"name":"punctuation.definition.string.begin.php"}},"end":"(/)([ADSUXeimsux]*)(')","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-Z\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}][0-9A-Z\\\\\\\\_a-z\\\\x7F-\\\\x{10FFFF}]*)(?=\\\\s*::)"},{"begin":"(?i)(::)\\\\s*([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\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":"(?i)(::)\\\\s*(?:((\\\\$+)[_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*)|([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*))?"}]},"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":"(?i)\\\\bapc_(store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|exists|fetch|load_constants|add|bin_(dump|load)(file)?)\\\\b","name":"support.function.apc.php"},{"match":"(?i)\\\\b(compact|count|current|end|extract|in_array|key(_exists)?|list|nat(case)?sort|next|pos|prev|range|reset|shuffle|sizeof|[ak]?r?sort|u[ak]?sort|array_(all|any|change_key_case|chunk|column|combine|count_values|fill(_keys)?|filter|find(_key)?|flip|is_list|key_(exists|first|last)|keys|map|multisort|pad|pop|product|push|rand|reduce|reverse|search|shift|slice|splice|sum|unique|unshift|values|u?(diff|intersect)(_u?(key|assoc))?|(walk|replace|merge)(_recursive)?))\\\\b","name":"support.function.array.php"},{"match":"(?i)\\\\b(connection_(aborted|status)|constant|defined?|die|eval|exit|get_browser|__halt_compiler|highlight_(file|string)|hrtime|ignore_user_abort|pack|php_strip_whitespace|show_source|u?sleep|sys_getloadavg|time_(nanosleep|sleep_until)|uniqid|unpack)\\\\b","name":"support.function.basic_functions.php"},{"match":"(?i)\\\\bbc(add|ceil|comp|(div|pow)(mod)?|floor|mod|mul|round|scale|sqrt|sub)\\\\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":"(?i)\\\\b((French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|jdto(unix|jewish)|easter_(da(?:te|ys))|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek))\\\\b","name":"support.function.calendar.php"},{"match":"(?i)\\\\b(__autoload|class_alias|(class|interface|method|property|trait|enum)_exists|is_(a|subclass_of)|get_(class(_(vars|methods))?|(called|parent)_class|(mangled_)?object_vars|declared_(classes|interfaces|traits)))\\\\b","name":"support.function.classobj.php"},{"match":"(?i)\\\\b(com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul))\\\\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":"(?i)\\\\bcurl_(close|copy_handle|errno|error|escape|exec|getinfo|init|pause|reset|setopt(_array)?|strerror|unescape|upkeep|version|multi_((add|remove)_handle|close|errno|exec|getcontent|info_read|init|select|setopt|strerror)|share_(close|errno|init(_persistent)?|setopt|strerror))\\\\b","name":"support.function.curl.php"},{"match":"(?i)\\\\b(strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|date(_(sun(rise|set)|sun_info|sub|create(_immutable)?(_from_format)?|timestamp_[gs]et|timezone_[gs]et|time_set|isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_[gs]et|date_set|parse(_from_format)?|format|add|get_last_errors|modify))?|localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime)\\\\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":"(?i)\\\\beio_(sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy)\\\\b","name":"support.function.eio.php"},{"match":"(?i)\\\\benchant_(dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error))\\\\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)_(e(?:rror|xception))_handler|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|(clear|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":"(?i)\\\\bfann_((duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|((?:in|out)put)(_train_data)?)|set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|(m(?:ax|in))_(cand|out)_epochs)|callback|training_algorithm|train_(error|stop)_function|((?:in|out)put)_scaling_params|error_log|quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|activation_(function|steepness)(_(hidden|layer|output))?|rprop_(((?:de|in)crease)_factor|delta_(max|min|zero)))|save(_train)?|num_((?:in|out)put)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|create_((s(?:parse|hortcut|tandard))(_array)?|train(_from_callback)?|from_file)|test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|cascade_(num_(candidate(?:s|_groups))|(candidate|output)_(change_fraction|limit|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)(_count)?|(m(?:ax|in))_(cand|out)_epochs)|total_((?:connecti|neur)ons)|training_algorithm|train_(error|stop)_function|err(no|str)|quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|rprop_(((?:de|in)crease)_factor|delta_(max|min|zero))))\\\\b","name":"support.function.fann.php"},{"match":"(?i)\\\\b(symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename|f(data)?sync)\\\\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)\\\\b(f(?:astcgi_finish_request|pm_get_status))\\\\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)?|c(n)?)gettext)|bind(textdomain|_textdomain_codeset))\\\\b","name":"support.function.gettext.php"},{"match":"(?i)\\\\bgmp_(scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|intval|init|invert|import|or|div(exact)?|div_(qr??|r)|jacobi|popcount|pow(m)?|perfect_(square|power)|prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range|seed))?|gcd(ext)?|xor|mod|mul|binomial|kronecker|lcm)\\\\b","name":"support.function.gmp.php"},{"match":"(?i)\\\\bhash(_(algos|copy|equals|file|final|hkdf|hmac(_(file|algos)?)?|init|pbkdf2|update(_(file|stream))?))?\\\\b","name":"support.function.hash.php"},{"match":"(?i)\\\\b(http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|ob_(etag|deflate|inflate)handler)\\\\b","name":"support.function.http.php"},{"match":"(?i)\\\\b(iconv(_(str(pos|len|rpos)|substr|[gs]et_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\\\b","name":"support.function.iconv.php"},{"match":"(?i)\\\\biis_((st(?:art|op))_(serv(?:ice|er))|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":"(?i)\\\\b(iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|image(s[xy]|scale|(char|string)(up)?|set(clip|style|thickness|tile|interpolation|pixel|brush)|savealpha|convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|crop(auto)?|create(truecolor|from(avif|bmp|string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|tga|xpm|xbm))?|types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|_type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd2?|gammacorrect|grab(screen|window)|xbm|resolution|openpolygon|get(clip|interpolation)|avif|bmp))\\\\b","name":"support.function.image.php"},{"match":"(?i)\\\\b(sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_[gs]et_process_title|ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|magic_quotes_(gpc|runtime)|required_files|resources)|get(env|lastmod|rusage|my(inode|[gpu]id))|memory_get_(peak_)?usage|main|magic_quotes_runtime)\\\\b","name":"support.function.info.php"},{"match":"(?i)\\\\bibase_(set_event_handler|service_((?:at|de)tach)|server_info|num_(fields|params)|name_result|connect|commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|blob_(cancel|close|create|import|info|open|echo|add|get))\\\\b","name":"support.function.interbase.php"},{"match":"(?i)\\\\b(normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|get_(strength|sort_key|error_(code|message)|locale|attribute))|transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|resourcebundle_(create|count|locales|get(_(error_(code|message)))?)|grapheme_(str(i?str|r?i?pos|len|_split)|substr|extract)|msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale)))\\\\b","name":"support.function.intl.php"},{"match":"(?i)\\\\bjson_(decode|encode|last_error(_msg)?|validate)\\\\b","name":"support.function.json.php"},{"match":"(?i)\\\\bldap_(start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|dn2ufn|delete|unbind|parse_(re(?:ference|sult))|escape|errno|err2str|error|explode_dn|bind|free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|mod_(add|del|replace))\\\\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(a?(cos|sin|tan)h?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|pi|pow|exp(m1)?|floor|f(div|mod|pow)|lcg_value|log(1[0p])?|atan2|abs|round|rand|rad2deg|getrandmax|mt_(srand|rand|getrandmax)|max|min|bindec|base_convert|intdiv)\\\\b","name":"support.function.math.php"},{"match":"(?i)\\\\bmb_(str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos|_pad|_split)|substitute_character|substr(_count)?|split|send_mail|http_((?:in|out)put)|check_encoding|convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|list_encodings|language|regex_(set_options|encoding)|get_info|[lr]?trim|[lu]cfirst|ord|chr|scrub)\\\\b","name":"support.function.mbstring.php"},{"match":"(?i)\\\\b(m(?:crypt_(cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|enc_(self_test|is_block_(algorithm|algorithm_mode|mode)|get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|get_(cipher_name|(block|iv|key)_size)|module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|get_(supported_key_sizes|algo_(block|key)_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)\\\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_((?:de|en)code))\\\\b","name":"support.function.mongo.php"},{"match":"(?i)\\\\bmysql_(stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|get_(client|host|proto|server)_info)\\\\b","name":"support.function.mysql.php"},{"match":"(?i)\\\\bmysqli_(ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|attr_[gs]et|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|client_encoding|close|thread_safe|init|options|((?:en|dis)able)_(r(?:eads_from_master|pl_parse))|dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|master_query|bind_(param|result)|begin_transaction)\\\\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":"(?i)\\\\b(syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|headers_(list|sent)|header(_(re(?:gister_callback|move)))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(n(?:ame|umber))|mxrr)|http_(clear|get)_last_response_headers|net_get_interfaces|request_parse_body)\\\\b","name":"support.function.network.php"},{"match":"(?i)\\\\bnsapi_(virtual|response_headers|request_headers)\\\\b","name":"support.function.nsapi.php"},{"match":"(?i)\\\\b(oci(?:(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(o(?:n|ff))|rowcount|rollback|result|bindbyname)|_(statement_type|set_(client_(i(?:nfo|dentifier))|prefetch|edition|action|module_name)|server_version|num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)))\\\\b","name":"support.function.oci8.php"},{"match":"(?i)\\\\bopcache_(compile_file|invalidate|is_script_cached|reset|get_(status|configuration))\\\\b","name":"support.function.opcache.php"},{"match":"(?i)\\\\bopenssl_(sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|cipher_(iv|key)_length|open|dh_compute_key|digest|decrypt|public_((?:de|en)crypt)|encrypt|error_string|pkcs12_(export(_to_file)?|read)|(cms|pkcs7)_(sign|decrypt|encrypt|verify|read)|verify|free_key|random_pseudo_bytes|pkey_(derive|new|export(_to_file)?|free|get_(details|public|private))|private_((?:de|en)crypt)|pbkdf2|get_((cipher|md)_methods|cert_locations|curve_names|(p(?:ublic|rivate))key)|x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read|verify))\\\\b","name":"support.function.openssl.php"},{"match":"(?i)\\\\b(output_(add_rewrite_var|reset_rewrite_vars)|flush|ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|get_(status|contents|clean|flush|length|level)))\\\\b","name":"support.function.output.php"},{"match":"(?i)\\\\bpassword_(algos|hash|needs_rehash|verify|get_info)\\\\b","name":"support.function.password.php"},{"match":"(?i)\\\\bpcntl_(alarm|async_signals|errno|exec|r?fork|get_last_error|[gs]et((?:cpuaffin|prior)ity)|signal(_(dispatch|get_handler))?|sig(procmask|timedwait|waitinfo)|strerror|unshare|wait(p?id)?|wexitstatus|wif((?:exit|signal|stopp)ed)|w(stop|term)sig)\\\\b","name":"support.function.pcntl.php"},{"match":"(?i)\\\\bpg_(socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|)\\\\b","name":"support.function.pgsql.php"},{"match":"(?i)\\\\b(virtual|getallheaders|apache_([gs]etenv|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":"(?i)\\\\bftp_(ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir)\\\\b","name":"support.function.php_ftp.php"},{"match":"(?i)\\\\bimap_((create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|8bit|unsubscribe|undelete|utf7_((?:de|en)code)|utf8|uid|ping|errors|expunge|qprint|gc|fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(s(?:can|ubscribed))|last_error|rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64)\\\\b","name":"support.function.php_imap.php"},{"match":"(?i)\\\\bmssql_(select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind)\\\\b","name":"support.function.php_mssql.php"},{"match":"(?i)\\\\bodbc_(statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode)\\\\b","name":"support.function.php_odbc.php"},{"match":"(?i)\\\\bpreg_(split|quote|filter|last_error(_msg)?|replace(_callback(_array)?)?|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":"(?i)\\\\bposix_(strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|e?access|get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|get_last_error|mknod|mkfifo|(sys|f?path)conf|setrlimit)\\\\b","name":"support.function.posix.php"},{"match":"(?i)\\\\bset(thread|proc)title\\\\b","name":"support.function.proctitle.php"},{"match":"(?i)\\\\bpspell_(store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|config_(save_repl|create|ignore|(d(?:ata|ict))_dir|personal|runtogether|repl|mode)|add_to_(session|personal))\\\\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":"(?i)\\\\b(shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|msg_((get|remove|set|stat)_queue|send|queue_exists|receive))\\\\b","name":"support.function.sem.php"},{"match":"(?i)\\\\bsession_(status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|((?:regener|cre)ate)_id|get_cookie_params|module_name|gc)\\\\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)\\\\b(snmp(?:(walk(oid)?|realwalk|get(next)?|set)|_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|get_(valueretrieval|quick_print))|[23]_(set|walk|real_walk|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_(accept|addrinfo_(bind|connect|explain|lookup)|atmark|bind|(clear|last)_error|close|cmsg_space|connect|create(_(listen|pair))?|(ex|im)port_stream|[gs]et_option|[gs]etopt|get(peer|sock)name|listen|read|recv(from|msg)?|select|send(msg|to)?|set_(non)?block|shutdown|strerror|write|wsaprotocol_info_(export|import|release))\\\\b","name":"support.function.sockets.php"},{"match":"(?i)\\\\bsqlite_(single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|create_(aggregate|function)|open|unbuffered_query|udf_((?:de|en)code)_binary|popen|prev|escape_string|error_string|exec|valid|key|query|field_name|factory|fetch_(string|single|column_types|object|all|array)|lib(encoding|version)|last_(insert_rowid|error)|array_query|rewind|busy_timeout)\\\\b","name":"support.function.sqlite.php"},{"match":"(?i)\\\\bsqlsrv_(send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction)\\\\b","name":"support.function.sqlsrv.php"},{"match":"(?i)\\\\bstats_(harmonic_mean|covariance|standard_deviation|skew|cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|logistic|laplace|gamma|binomial|beta)|stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|weibull|logistic|laplace|gamma|beta)|den_uniform|variance|kurtosis|absolute_deviation|rand_(setall|phrase_to_seeds|ranf|get_seeds|gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta)))\\\\b","name":"support.function.stats.php"},{"match":"(?i)\\\\bstream_(bucket_(new|prepend|append|make_writeable)|context_(create|[gs]et_(options?|default|params))|copy_to_stream|filter_((ap|pre)pend|register|remove)|get_(contents|filters|line|meta_data|transports|wrappers)|is(atty|_local)|notification_callback|register_wrapper|resolve_include_path|select|set_(blocking|chunk_size|(read|write)_buffer|timeout)|socket_(accept|client|enable_crypto|get_name|pair|recvfrom|sendto|server|shutdown)|supports_lock|wrapper_((un)?register|restore))\\\\b","name":"support.function.streamsfuncs.php"},{"match":"(?i)\\\\b(money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|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)|str_(getcsv|i?replace|pad|repeat|rot13|shuffle|split|word_count|contains|(starts|ends)_with|(in|de)crement)|strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|chop|chunk_split|chr|convert_(cyr_string|uu((?:de|en)code))|count_chars|crypt|crc32|trim|implode|ord|uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_((?:de|en)code)|quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table)\\\\b","name":"support.function.string.php"},{"match":"(?i)\\\\bsybase_(set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|affected_rows|result|get_last_message|min_(client|error|message|server)_severity)\\\\b","name":"support.function.sybase.php"},{"match":"(?i)\\\\b(taint|is_tainted|untaint)\\\\b","name":"support.function.taint.php"},{"match":"(?i)\\\\b(tidy_([gs]etopt|set_encoding|save_config|config_count|clean_repair|is_(x(?:html|ml))|diagnose|(access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|ob_tidyhandler)\\\\b","name":"support.function.tidy.php"},{"match":"(?i)\\\\btoken_(name|get_all)\\\\b","name":"support.function.tokenizer.php"},{"match":"(?i)\\\\btrader_(stoch([fr]|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|ht_(sine|trend(line|mode)|dc(p(?:eriod|hase))|phasor)|natr|cci|cos(h)?|correl|cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|belthold|breakaway)|ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|add??|adx(r)?|apo|avgprice|aroon(osc)?|rsi|rocp??|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|minmax(index)?|mid(p(?:oint|rice))|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?)\\\\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((?:de|en)code)|parse_url|get_(headers|meta_tags)|base64_((?:de|en)code))\\\\b","name":"support.function.url.php"},{"match":"(?i)\\\\b((bool|double|float|int|str)val|debug_zval_dump|empty|get_(debug_type|defined_vars|resource_(id|type))|[gs]ettype|is_(array|bool|callable|countable|double|float|int(eger)?|iterable|long|null|numeric|object|real|resource|scalar|string)|isset|print_r|(un)?serialize|unset|var_(dump|export))\\\\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_)?((?:dis|en)able)\\\\b","name":"support.function.xhprof.php"},{"match":"(?i)\\\\b(utf8_((?:de|en)code)|xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|(character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|parse(_into_struct)?|parser_([gs]et_option|create(_ns)?|free)|error_string|get_(current_((column|line)_number|byte_index)|error_code)))\\\\b","name":"support.function.xml.php"},{"match":"(?i)\\\\bxmlrpc_(server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|[gs]et_type)\\\\b","name":"support.function.xmlrpc.php"},{"match":"(?i)\\\\bxmlwriter_((end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|(start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|full_end_element|flush|)\\\\b","name":"support.function.xmlwriter.php"},{"match":"(?i)\\\\b(zlib_(decode|encode|get_coding_type)|readgzfile|gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|write|rewind|read|getc|getss?)|deflate_(add|init)|inflate_(add|get_(read_len|status)|init))\\\\b","name":"support.function.zlib.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":"(?[_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*))\\\\s*(?:(\\\\??->)\\\\s*(\\\\g)|(\\\\[)(?:(\\\\d+)|((\\\\$)\\\\g)|([_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\x{10FFFF}]*))(]))?"},{"captures":{"1":{"name":"variable.other.php"},"2":{"name":"punctuation.definition.variable.php"},"4":{"name":"punctuation.definition.variable.php"}},"match":"(?i)((\\\\$\\\\{)(?[_a-z\\\\x7F-\\\\x{10FFFF}][0-9_a-z\\\\x7F-\\\\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"]}`)),Hd=[...Pd,...Bd,...xs,...vs,...ys,...ws,Ud],Wd=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"}')),Vd=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"}'));Mt("[data-tippy-content]",{arrow:!1,allowHTML:!0,animation:"shift-away",delay:[300,0],duration:200,theme:"laravel"});window.copyToClipboard=async function(e){if(navigator.clipboard)await navigator.clipboard.writeText(e);else{const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",t.style.pointerEvents="none",document.body.appendChild(t),t.select();const n=document.execCommand("copy");if(document.body.removeChild(t),!n)throw new Error("Failed to copy text to clipboard")}};const Zd=Vu({themes:[Vd,Wd],langs:[Hd,xs,ys],engine:Nd()});window.highlight=function(e,t,n=!1,a=!1,r=1,i=null){return Zd.codeToHtml(e,{lang:t,themes:{light:"light-plus",dark:"dark-plus"},transformers:[{pre(s){this.addClassToHast(s,["bg-transparent!",n?"truncate":"w-fit min-w-full"])},line(s,c){if(!a)return;const o=r+c-1,l=i===c-1,u={type:"element",tagName:"span",properties:{className:["mr-6 text-neutral-500! dark:text-neutral-600!",l?"dark:text-white!":""]},children:[{type:"text",value:o.toString()}]};s.children.unshift(u),this.addClassToHast(s,["inline-block w-full px-4 py-1 h-7 even:bg-white odd:bg-white/2 even:dark:bg-white/2 odd:dark:bg-white/4",l?"bg-rose-200! dark:bg-rose-900!":""])}}]})}; ================================================ FILE: resources/dist/styles.css ================================================ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-800:oklch(47.3% .137 46.201);--color-amber-900:oklch(41.4% .112 45.904);--color-amber-950:oklch(27.9% .077 45.635);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-emerald-900:oklch(37.8% .077 168.94);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-300:oklch(80.9% .105 251.813);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-blue-900:oklch(37.9% .146 265.522);--color-blue-950:oklch(28.2% .091 267.935);--color-rose-50:oklch(96.9% .015 12.422);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-200:oklch(89.2% .058 10.001);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-rose-900:oklch(41% .159 10.272);--color-rose-950:oklch(27.1% .105 12.094);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-500:oklch(55.6% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-700:oklch(37.1% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-neutral-950:oklch(14.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-light:300;--font-weight-medium:500;--font-weight-semibold:600;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}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;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.top-\[-1px\]{top:-1px}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-0{left:calc(var(--spacing)*0)}.-z-10{z-index:-10}.z-50{z-index:50}.mx-auto{margin-inline:auto}.-mt-3{margin-top:calc(var(--spacing)*-3)}.-mt-5{margin-top:calc(var(--spacing)*-5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mr-6{margin-right:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.h-0{height:calc(var(--spacing)*0)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-\[18px\]{height:18px}.h-\[56px\]{height:56px}.min-h-dvh{min-height:100dvh}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-\[18px\]{width:18px}.w-fit{width:fit-content}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-5{min-width:calc(var(--spacing)*5)}.min-w-6{min-width:calc(var(--spacing)*6)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-1\/12{flex-basis:8.33333%}.basis-11\/12{flex-basis:91.6667%}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.transform\!{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)!important}.cursor-not-allowed\!{cursor:not-allowed!important}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-12{gap:calc(var(--spacing)*12)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-1{column-gap:calc(var(--spacing)*1)}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-neutral-200>:not(:last-child)){border-color:var(--color-neutral-200)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-lg{border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-neutral-100{border-color:var(--color-neutral-100)}.border-neutral-200{border-color:var(--color-neutral-200)}.border-neutral-300{border-color:var(--color-neutral-300)}.bg-amber-200{background-color:var(--color-amber-200)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-black\/8{background-color:#00000014}@supports (color:color-mix(in lab,red,red)){.bg-black\/8{background-color:color-mix(in oklab,var(--color-black)8%,transparent)}}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.bg-black\/10{background-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-blue-700{background-color:var(--color-blue-700)}.bg-emerald-200{background-color:var(--color-emerald-200)}.bg-emerald-600{background-color:var(--color-emerald-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-950\/5{background-color:#0307120d}@supports (color:color-mix(in lab,red,red)){.bg-gray-950\/5{background-color:color-mix(in oklab,var(--color-gray-950)5%,transparent)}}.bg-neutral-50{background-color:var(--color-neutral-50)}.bg-neutral-600{background-color:var(--color-neutral-600)}.bg-rose-200{background-color:var(--color-rose-200)}.bg-rose-200\!{background-color:var(--color-rose-200)!important}.bg-rose-500{background-color:var(--color-rose-500)}.bg-rose-600{background-color:var(--color-rose-600)}.bg-transparent\!{background-color:#0000!important}.bg-white{background-color:var(--color-white)}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\/\[2\%\]{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.bg-white\/\[2\%\]{background-color:color-mix(in oklab,var(--color-white)2%,transparent)}}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-2\.5{padding:calc(var(--spacing)*2.5)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-\[6px\]{padding-inline:6px}.py-0{padding-block:calc(var(--spacing)*0)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-14{padding-top:calc(var(--spacing)*14)}.pr-2\.5{padding-right:calc(var(--spacing)*2.5)}.pb-0{padding-bottom:calc(var(--spacing)*0)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-xs\/none{font-size:var(--text-xs);line-height:1}.text-\[13px\]{font-size:13px}.leading-3{--tw-leading:calc(var(--spacing)*3);line-height:calc(var(--spacing)*3)}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-6{--tw-leading:calc(var(--spacing)*6);line-height:calc(var(--spacing)*6)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.break-words{overflow-wrap:break-word}.text-amber-900{color:var(--color-amber-900)}.text-blue-500{color:var(--color-blue-500)}.text-blue-900{color:var(--color-blue-900)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-900{color:var(--color-emerald-900)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-neutral-100{color:var(--color-neutral-100)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-500{color:var(--color-neutral-500)}.text-neutral-500\!{color:var(--color-neutral-500)!important}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-800{color:var(--color-neutral-800)}.text-neutral-900{color:var(--color-neutral-900)}.text-neutral-950{color:var(--color-neutral-950)}.text-rose-900{color:var(--color-rose-900)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.decoration-neutral-400{-webkit-text-decoration-color:var(--color-neutral-400);text-decoration-color:var(--color-neutral-400)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.scheme-light-dark{color-scheme:light dark}.opacity-90{opacity:.9}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.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,)!important}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-75{--tw-duration:75ms;transition-duration:75ms}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}@media(hover:hover){.group-hover\:text-blue-500:is(:where(.group):hover *){color:var(--color-blue-500)}}.odd\:bg-white\/2:nth-child(odd){background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.odd\:bg-white\/2:nth-child(odd){background-color:color-mix(in oklab,var(--color-white)2%,transparent)}}.even\:bg-white:nth-child(2n){background-color:var(--color-white)}@media(hover:hover){.hover\:bg-gray-950\/5:hover{background-color:#0307120d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-gray-950\/5:hover{background-color:color-mix(in oklab,var(--color-gray-950)5%,transparent)}}.hover\:bg-neutral-100:hover{background-color:var(--color-neutral-100)}.hover\:bg-neutral-200:hover{background-color:var(--color-neutral-200)}.hover\:bg-white\/50:hover{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/50:hover{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.hover\:underline:hover{text-decoration-line:underline}}.focus\:bg-gray-950\/5:focus{background-color:#0307120d}@supports (color:color-mix(in lab,red,red)){.focus\:bg-gray-950\/5:focus{background-color:color-mix(in oklab,var(--color-gray-950)5%,transparent)}}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mt-0{margin-top:calc(var(--spacing)*0)}.sm\:mb-16{margin-bottom:calc(var(--spacing)*16)}.sm\:grid{display:grid}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:p-14{padding:calc(var(--spacing)*14)}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:py-0{padding-block:calc(var(--spacing)*0)}.sm\:pt-16{padding-top:calc(var(--spacing)*16)}.sm\:pb-0{padding-bottom:calc(var(--spacing)*0)}}@media(min-width:48rem){.md\:flex-row{flex-direction:row}}:where(.dark\:divide-white\/5:where(.dark,.dark *)>:not(:last-child)){border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-white\/5:where(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-white)5%,transparent)}}:where(.dark\:divide-white\/10:where(.dark,.dark *)>:not(:last-child)){border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){:where(.dark\:divide-white\/10:where(.dark,.dark *)>:not(:last-child)){border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.dark\:rounded-lg:where(.dark,.dark *){border-radius:var(--radius-lg)}.dark\:border:where(.dark,.dark *){border-style:var(--tw-border-style);border-width:1px}.dark\:border-r:where(.dark,.dark *){border-right-style:var(--tw-border-style);border-right-width:1px}.dark\:border-none:where(.dark,.dark *){--tw-border-style:none;border-style:none}.dark\:border-amber-500:where(.dark,.dark *){border-color:var(--color-amber-500)}.dark\:border-amber-800:where(.dark,.dark *){border-color:var(--color-amber-800)}.dark\:border-blue-600:where(.dark,.dark *){border-color:var(--color-blue-600)}.dark\:border-blue-800:where(.dark,.dark *){border-color:var(--color-blue-800)}.dark\:border-emerald-500:where(.dark,.dark *){border-color:var(--color-emerald-500)}.dark\:border-emerald-600:where(.dark,.dark *){border-color:var(--color-emerald-600)}.dark\:border-gray-700:where(.dark,.dark *){border-color:var(--color-gray-700)}.dark\:border-gray-800:where(.dark,.dark *){border-color:var(--color-gray-800)}.dark\:border-neutral-500:where(.dark,.dark *){border-color:var(--color-neutral-500)}.dark\:border-neutral-600:where(.dark,.dark *){border-color:var(--color-neutral-600)}.dark\:border-neutral-700:where(.dark,.dark *){border-color:var(--color-neutral-700)}.dark\:border-neutral-800:where(.dark,.dark *){border-color:var(--color-neutral-800)}.dark\:border-rose-500:where(.dark,.dark *){border-color:var(--color-rose-500)}.dark\:border-rose-900:where(.dark,.dark *){border-color:var(--color-rose-900)}.dark\:border-white\/5:where(.dark,.dark *){border-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/5:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.dark\:border-white\/8:where(.dark,.dark *){border-color:#ffffff14}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/8:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.dark\:border-white\/10:where(.dark,.dark *){border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/10:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.dark\:border-white\/20:where(.dark,.dark *){border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/20:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.dark\:border-white\/\[9\%\]:where(.dark,.dark *){border-color:#ffffff17}@supports (color:color-mix(in lab,red,red)){.dark\:border-white\/\[9\%\]:where(.dark,.dark *){border-color:color-mix(in oklab,var(--color-white)9%,transparent)}}.dark\:border-r-gray-200:where(.dark,.dark *){border-right-color:var(--color-gray-200)}.dark\:bg-\[\#1a1a1a\]:where(.dark,.dark *){background-color:#1a1a1a}.dark\:bg-amber-600:where(.dark,.dark *){background-color:var(--color-amber-600)}.dark\:bg-amber-950:where(.dark,.dark *){background-color:var(--color-amber-950)}.dark\:bg-blue-700:where(.dark,.dark *){background-color:var(--color-blue-700)}.dark\:bg-blue-950:where(.dark,.dark *){background-color:var(--color-blue-950)}.dark\:bg-emerald-600:where(.dark,.dark *){background-color:var(--color-emerald-600)}.dark\:bg-emerald-900\/70:where(.dark,.dark *){background-color:#004e3bb3}@supports (color:color-mix(in lab,red,red)){.dark\:bg-emerald-900\/70:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-emerald-900)70%,transparent)}}.dark\:bg-gray-800:where(.dark,.dark *){background-color:var(--color-gray-800)}.dark\:bg-gray-900:where(.dark,.dark *){background-color:var(--color-gray-900)}.dark\:bg-neutral-400:where(.dark,.dark *){background-color:var(--color-neutral-400)}.dark\:bg-neutral-600:where(.dark,.dark *){background-color:var(--color-neutral-600)}.dark\:bg-neutral-700:where(.dark,.dark *){background-color:var(--color-neutral-700)}.dark\:bg-neutral-800:where(.dark,.dark *){background-color:var(--color-neutral-800)}.dark\:bg-neutral-900:where(.dark,.dark *){background-color:var(--color-neutral-900)}.dark\:bg-rose-600:where(.dark,.dark *){background-color:var(--color-rose-600)}.dark\:bg-rose-900\!:where(.dark,.dark *){background-color:var(--color-rose-900)!important}.dark\:bg-rose-950:where(.dark,.dark *){background-color:var(--color-rose-950)}.dark\:bg-transparent:where(.dark,.dark *){background-color:#0000}.dark\:bg-white:where(.dark,.dark *){background-color:var(--color-white)}.dark\:bg-white\/1:where(.dark,.dark *){background-color:#ffffff03}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/1:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)1%,transparent)}}.dark\:bg-white\/3:where(.dark,.dark *){background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/3:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)3%,transparent)}}.dark\:bg-white\/5:where(.dark,.dark *){background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/5:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.dark\:bg-white\/10:where(.dark,.dark *){background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/10:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.dark\:bg-white\/\[0\.03\]:where(.dark,.dark *){background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/\[0\.03\]:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)3%,transparent)}}.dark\:bg-white\/\[2\%\]:where(.dark,.dark *){background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/\[2\%\]:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)2%,transparent)}}.dark\:bg-white\/\[3\%\]:where(.dark,.dark *){background-color:#ffffff08}@supports (color:color-mix(in lab,red,red)){.dark\:bg-white\/\[3\%\]:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)3%,transparent)}}.dark\:text-amber-300:where(.dark,.dark *){color:var(--color-amber-300)}.dark\:text-blue-300:where(.dark,.dark *){color:var(--color-blue-300)}.dark\:text-emerald-400:where(.dark,.dark *){color:var(--color-emerald-400)}.dark\:text-emerald-500:where(.dark,.dark *){color:var(--color-emerald-500)}.dark\:text-gray-50:where(.dark,.dark *){color:var(--color-gray-50)}.dark\:text-gray-200:where(.dark,.dark *){color:var(--color-gray-200)}.dark\:text-gray-400:where(.dark,.dark *){color:var(--color-gray-400)}.dark\:text-gray-500:where(.dark,.dark *){color:var(--color-gray-500)}.dark\:text-neutral-100:where(.dark,.dark *){color:var(--color-neutral-100)}.dark\:text-neutral-200:where(.dark,.dark *){color:var(--color-neutral-200)}.dark\:text-neutral-300:where(.dark,.dark *){color:var(--color-neutral-300)}.dark\:text-neutral-400:where(.dark,.dark *){color:var(--color-neutral-400)}.dark\:text-neutral-500:where(.dark,.dark *){color:var(--color-neutral-500)}.dark\:text-neutral-600:where(.dark,.dark *){color:var(--color-neutral-600)}.dark\:text-neutral-600\!:where(.dark,.dark *){color:var(--color-neutral-600)!important}.dark\:text-neutral-900:where(.dark,.dark *){color:var(--color-neutral-900)}.dark\:text-rose-100:where(.dark,.dark *){color:var(--color-rose-100)}.dark\:text-white:where(.dark,.dark *){color:var(--color-white)}.dark\:text-white\!:where(.dark,.dark *){color:var(--color-white)!important}@media(hover:hover){.group-hover\:dark\:text-emerald-500:is(:where(.group):hover *):where(.dark,.dark *){color:var(--color-emerald-500)}}.odd\:dark\:bg-white\/4:nth-child(odd):where(.dark,.dark *){background-color:#ffffff0a}@supports (color:color-mix(in lab,red,red)){.odd\:dark\:bg-white\/4:nth-child(odd):where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)4%,transparent)}}.dark\:even\:bg-gray-700:where(.dark,.dark *):nth-child(2n){background-color:var(--color-gray-700)}.even\:dark\:bg-white\/2:nth-child(2n):where(.dark,.dark *){background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.even\:dark\:bg-white\/2:nth-child(2n):where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)2%,transparent)}}@media(hover:hover){.dark\:hover\:bg-white\/2:where(.dark,.dark *):hover{background-color:#ffffff05}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-white\/2:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-white)2%,transparent)}}.dark\:hover\:bg-white\/5:where(.dark,.dark *):hover{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-white\/5:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.dark\:hover\:bg-white\/10:where(.dark,.dark *):hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-white\/10:where(.dark,.dark *):hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\:dark\:bg-white\/5:hover:where(.dark,.dark *){background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.hover\:dark\:bg-white\/5:hover:where(.dark,.dark *){background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\:dark\:text-white:hover:where(.dark,.dark *){color:var(--color-white)}}.dark\:focus\:bg-white\/5:where(.dark,.dark *):focus{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.dark\:focus\:bg-white\/5:where(.dark,.dark *):focus{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.\[\&_\.fi-page-content\]\:gap-y-0\! .fi-page-content,.\[\&_\.fi-page-header-main-ctn\]\:gap-y-0\! .fi-page-header-main-ctn{row-gap:calc(var(--spacing)*0)!important}.\[\&_\.fi-page-header-main-ctn\]\:py-1 .fi-page-header-main-ctn{padding-block:calc(var(--spacing)*1)}.\[\&_svg\]\:size-2\.5 svg{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.\[\&_svg\]\:\!text-white svg{color:var(--color-white)!important}@media(hover:hover){.hover\:\[\&_svg\]\:stroke-emerald-500:hover svg{stroke:var(--color-emerald-500)}}.dark\:\[\&_svg\]\:\!text-white:where(.dark,.dark *) svg{color:var(--color-white)!important}.\[\&\>div\:last-child\]\:z-10>div:last-child{z-index:10}.dark\:\[\&\>div\>div\:last-child\]\:bg-gray-900\!:where(.dark,.dark *)>div>div:last-child{background-color:var(--color-gray-900)!important}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{color:#fff;white-space:normal;background-color:#333;border-radius:4px;outline:0;font-size:14px;line-height:1.4;transition-property:transform,visibility,opacity;position:relative}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-width:8px 8px 0;border-top-color:initial;transform-origin:top;bottom:-7px;left:0}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-width:0 8px 8px;border-bottom-color:initial;transform-origin:bottom;top:-7px;left:0}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;transform-origin:0;right:-7px}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:100%;left:-7px}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{color:#333;width:16px;height:16px}.tippy-arrow:before{content:"";border-style:solid;border-color:#0000;position:absolute}.tippy-content{z-index:1;padding:5px 9px;position:relative}.tippy-box[data-animation=shift-away][data-state=hidden]{opacity:0}.tippy-box[data-animation=shift-away][data-state=hidden][data-placement^=top]{transform:translateY(10px)}.tippy-box[data-animation=shift-away][data-state=hidden][data-placement^=bottom]{transform:translateY(-10px)}.tippy-box[data-animation=shift-away][data-state=hidden][data-placement^=left]{transform:translate(10px)}.tippy-box[data-animation=shift-away][data-state=hidden][data-placement^=right]{transform:translate(-10px)}[x-cloak]{display:none!important}.tippy-box[data-theme~=laravel]{border-radius:var(--radius-md);border-style:var(--tw-border-style);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-backdrop-blur:blur(var(--blur-md));-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,);border-width:1px;border-color:var(--color-neutral-800);background-color:var(--color-neutral-900);color:var(--color-white);overflow-x:auto;max-width:var(--container-7xl)!important}.dark .tippy-box[data-theme~=laravel]{border-color:var(--color-neutral-700);background-color:var(--color-neutral-800);color:var(--color-neutral-100)}.tippy-content[data-theme~=laravel]{padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1)}.dark .shiki,.dark .shiki span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false} ================================================ FILE: resources/js/scripts.js ================================================ import tippy from 'tippy.js'; import { createHighlighterCoreSync } from 'shiki/core'; import { createJavaScriptRegexEngine } from 'shiki/engine/javascript'; import json from '@shikijs/langs/json'; import php from '@shikijs/langs/php'; import sql from '@shikijs/langs/sql'; import darkPlus from '@shikijs/themes/dark-plus'; import lightPlus from '@shikijs/themes/light-plus'; tippy('[data-tippy-content]', { arrow: false, allowHTML: true, animation: 'shift-away', delay: [300, 0], duration: 200, theme: 'laravel', }); window.copyToClipboard = async function (text) { if (navigator.clipboard) { await navigator.clipboard.writeText(text); } else { const textarea = document.createElement('textarea'); textarea.value = text; textarea.style.position = 'fixed'; textarea.style.opacity = '0'; textarea.style.pointerEvents = 'none'; document.body.appendChild(textarea); textarea.select(); const result = document.execCommand('copy'); document.body.removeChild(textarea); if (!result) { throw new Error('Failed to copy text to clipboard'); } } }; const highlighter = createHighlighterCoreSync({ themes: [lightPlus, darkPlus], langs: [php, sql, json], engine: createJavaScriptRegexEngine(), }); window.highlight = function ( code, language, truncate = false, editor = false, startingLine = 1, highlightedLine = null ) { return highlighter.codeToHtml(code, { lang: language, themes: { light: 'light-plus', dark: 'dark-plus', }, transformers: [ { pre(node) { this.addClassToHast(node, ['bg-transparent!', truncate ? 'truncate' : 'w-fit min-w-full']); }, line(node, line) { if (!editor) { return; } const lineNumber = startingLine + line - 1; const highlight = highlightedLine === line - 1; const lineNumberSpan = { type: 'element', tagName: 'span', properties: { className: [ 'mr-6 text-neutral-500! dark:text-neutral-600!', highlight ? 'dark:text-white!' : '', ], }, children: [{ type: 'text', value: lineNumber.toString() }], }; node.children.unshift(lineNumberSpan); this.addClassToHast(node, [ 'inline-block w-full px-4 py-1 h-7 even:bg-white odd:bg-white/2 even:dark:bg-white/2 odd:dark:bg-white/4', highlight ? 'bg-rose-200! dark:bg-rose-900!' : '', ]); }, }, ], }); }; ================================================ FILE: resources/lang/cs/filament-exceptions.php ================================================ [ 'model' => 'Výjimka', 'model_plural' => 'Výjimky', 'navigation' => 'Výjimka', 'navigation_group' => 'Nastavení', ], 'empty_list' => 'Hurá! Posaďte se a užívejte si 😎', 'columns' => [ 'method' => 'Metoda', 'path' => 'Cesta', 'type' => 'Typ', 'code' => 'Kód', 'ip' => 'IP', 'occurred_at' => 'Nastalo v', ], ]; ================================================ FILE: resources/lang/en/filament-exceptions.php ================================================ [ 'model' => 'Exception', 'model_plural' => 'Exceptions', 'navigation' => 'Exception', 'navigation_group' => 'Settings', ], 'empty_list' => 'Horray! just sit back & enjoy 😎', 'columns' => [ 'method' => 'Method', 'path' => 'Path', 'type' => 'Type', 'code' => 'Code', 'ip' => 'IP', 'occurred_at' => 'Occurred at', ], ]; ================================================ FILE: resources/lang/es/filament-exceptions.php ================================================ [ 'model' => 'Excepción', 'model_plural' => 'Excepciones', 'navigation' => 'Excepción', 'navigation_group' => 'Configuración', ], 'empty_list' => '¡Hurra! Relájate y disfruta 😎', 'columns' => [ 'method' => 'Método', 'path' => 'Ruta', 'type' => 'Tipo', 'code' => 'Código', 'ip' => 'IP', 'occurred_at' => 'Ocurrido en', ], ]; ================================================ FILE: resources/lang/sk/filament-exceptions.php ================================================ [ 'model' => 'Výnimka', 'model_plural' => 'Výnimky', 'navigation' => 'Výnimka', 'navigation_group' => 'Nastavenia', ], 'empty_list' => 'Hurá! len si sadnite a užívajte si 😎', 'columns' => [ 'method' => 'Metóda', 'path' => 'Cesta', 'type' => 'Typ', 'code' => 'Kód', 'ip' => 'IP', 'occurred_at' => 'Nastalo o', ], ]; ================================================ FILE: resources/views/.gitkeep ================================================ ================================================ FILE: resources/views/components/badge.blade.php ================================================ @props(['type' => 'default', 'variant' => 'soft']) @php $baseClasses = 'inline-flex w-fit shrink-0 items-center justify-center gap-1 font-mono leading-3 uppercase transition-colors dark:border [&_svg]:size-2.5 h-6 min-w-5 rounded-md px-1.5 text-xs/none'; $types = [ 'default' => [ 'soft' => 'bg-black/8 text-neutral-900 dark:border-neutral-700 dark:bg-white/10 dark:text-neutral-100', 'solid' => 'bg-neutral-600 text-neutral-100 dark:border-neutral-500 dark:bg-neutral-600', ], 'success' => [ 'soft' => 'bg-emerald-200 text-emerald-900 dark:border-emerald-600 dark:bg-emerald-900/70 dark:text-emerald-400', 'solid' => 'bg-emerald-600 dark:border-emerald-500 dark:bg-emerald-600', ], 'primary' => [ 'soft' => 'bg-blue-100 text-blue-900 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-300', 'solid' => 'bg-blue-700 dark:border-blue-600 dark:bg-blue-700', ], 'error' => [ 'soft' => 'bg-rose-200 text-rose-900 dark:border-rose-900 dark:bg-rose-950 dark:text-rose-100 dark:[&_svg]:!text-white', 'solid' => 'bg-rose-600 dark:border-rose-500 dark:bg-rose-600', ], 'alert' => [ 'soft' => 'bg-amber-200 text-amber-900 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-300', 'solid' => 'bg-amber-600 dark:border-amber-500 dark:bg-amber-600', ], 'white' => [ 'soft' => 'bg-white text-neutral-900 dark:border-neutral-700 dark:bg-neutral-800 dark:text-neutral-100', 'solid' => 'bg-black/10 text-neutral-900 dark:text-neutral-900 dark:bg-white', ], ]; $variants = [ 'soft' => '', 'solid' => 'text-white dark:text-white [&_svg]:!text-white', ]; $typeClasses = $types[$type][$variant] ?? $types['default']['soft']; $variantClasses = $variants[$variant] ?? $variants['soft']; $classes = implode(' ', [$baseClasses, $typeClasses, $variantClasses]); @endphp

merge(['class' => $classes]) }}> {{ $slot }}
================================================ FILE: resources/views/components/empty-state.blade.php ================================================ @props(['message'])
// {{ $message }}
================================================ FILE: resources/views/components/file-with-line.blade.php ================================================ @props(['frame', 'direction' => 'ltr']) @php $file = $frame->file(); $line = $frame->line(); @endphp
merge(['class' => 'truncate font-mono text-xs text-neutral-500 dark:text-neutral-400']) }} dir="{{ $direction }}" > @if (config('app.editor')) {{ $file }}:{{ $line }} @else {{ $file }}:{{ $line }} @endif
================================================ FILE: resources/views/components/formatted-source.blade.php ================================================ @props(['frame']) @php if ($class = $frame->class()) { $source = $class; if ($previous = $frame->previous()) { $source .= $previous->operator(); $source .= $previous->callable(); $source .= '('.implode(', ', $previous->args()).')'; } } else { $source = $frame->source(); } @endphp ================================================ FILE: resources/views/components/frame-code.blade.php ================================================ @props(['code', 'highlightedLine'])
================================================ FILE: resources/views/components/frame.blade.php ================================================ @props(['frame'])
{{-- Dot --}}
@if($snippet = $frame->snippet()) @endif
================================================ FILE: resources/views/components/header.blade.php ================================================ @props(['exception'])

{{ $exception->class() }}

{{ $exception->message() }}

LARAVEL {{ app()->version() }}
PHP {{ PHP_VERSION }}
UNHANDLED CODE {{ $exception->code() }}
================================================ FILE: resources/views/components/http-method.blade.php ================================================ @props(['method']) @php $type = match ($method) { 'GET', 'OPTIONS', 'ANY' => 'default', 'POST' => 'success', 'PUT', 'PATCH' => 'primary', 'DELETE' => 'error', default => 'default', }; @endphp {{ $method }} ================================================ FILE: resources/views/components/icons/alert.blade.php ================================================ ================================================ FILE: resources/views/components/icons/check.blade.php ================================================ ================================================ FILE: resources/views/components/icons/chevron-left.blade.php ================================================ ================================================ FILE: resources/views/components/icons/chevron-right.blade.php ================================================ ================================================ FILE: resources/views/components/icons/chevrons-down-up.blade.php ================================================ ================================================ FILE: resources/views/components/icons/chevrons-left.blade.php ================================================ ================================================ FILE: resources/views/components/icons/chevrons-right.blade.php ================================================ ================================================ FILE: resources/views/components/icons/chevrons-up-down.blade.php ================================================ ================================================ FILE: resources/views/components/icons/copy.blade.php ================================================ ================================================ FILE: resources/views/components/icons/database.blade.php ================================================ ================================================ FILE: resources/views/components/icons/folder-open.blade.php ================================================ ================================================ FILE: resources/views/components/icons/folder.blade.php ================================================ ================================================ FILE: resources/views/components/icons/globe.blade.php ================================================ ================================================ FILE: resources/views/components/icons/info.blade.php ================================================ ================================================ FILE: resources/views/components/icons/laravel-ascii.blade.php ================================================ ================================================ FILE: resources/views/components/query.blade.php ================================================ @props(['queries'])
merge(['class' => "flex flex-col gap-2.5 bg-neutral-50 dark:bg-white/1 border border-neutral-200 dark:border-neutral-800 rounded-xl p-2.5 shadow-xs"]) }} x-data="{ totalQueries: {{ min(count($queries), 100) }}, currentPage: 1, perPage: 10, get totalPages() { return Math.ceil(this.totalQueries / this.perPage); }, get hasPrevious() { return this.currentPage > 1; }, get hasNext() { return this.currentPage < this.totalPages; }, goToPage(page) { if (page >= 1 && page <= this.totalPages) { this.currentPage = page; } }, first() { this.currentPage = 1; }, last() { this.currentPage = this.totalPages; }, previous() { if (this.hasPrevious) { this.currentPage--; } }, next() { if (this.hasNext) { this.currentPage++; } }, get visiblePages() { const total = this.totalPages; const current = this.currentPage; const pages = []; if (total <= 7) { for (let i = 1; i <= total; i++) { pages.push({ type: 'page', value: i }); } } else { if (current <= 4) { for (let i = 1; i <= 5; i++) { pages.push({ type: 'page', value: i }); } if (total > 6) { pages.push({ type: 'ellipsis', value: '...', id: 'end' }); pages.push({ type: 'page', value: total }); } } else if (current > total - 4) { pages.push({ type: 'page', value: 1 }); if (total > 6) { pages.push({ type: 'ellipsis', value: '...', id: 'start' }); } for (let i = Math.max(total - 4, 2); i <= total; i++) { pages.push({ type: 'page', value: i }); } } else { pages.push({ type: 'page', value: 1 }); pages.push({ type: 'ellipsis', value: '...', id: 'start' }); for (let i = current - 1; i <= current + 1; i++) { pages.push({ type: 'page', value: i }); } pages.push({ type: 'ellipsis', value: '...', id: 'end' }); pages.push({ type: 'page', value: total }); } } return pages; } }" >

Queries

@if (count($queries) > 100) @endif
@forelse (array_slice($queries, 0, 100) as $index => ['connectionName' => $connectionName, 'sql' => $sql, 'time' => $time])
{{ $connectionName }}
{{ $time }}ms
@empty @endforelse
================================================ FILE: resources/views/components/request-body.blade.php ================================================ @props(['body'])

Body

@if($body)
@else @endif
================================================ FILE: resources/views/components/request-header.blade.php ================================================ @props(['headers'])

Headers

@foreach ($headers as $key => $value)
{{ $key }}
{{ $value }}
@endforeach
================================================ FILE: resources/views/components/request-url.blade.php ================================================ @props(['exception', 'request'])
merge(['class' => "bg-white dark:bg-[#1a1a1a] border border-neutral-200 dark:border-white/10 rounded-lg flex items-center justify-between h-10 px-2 shadow-xs"]) }} >
{{ $exception->httpStatusCode() }}
{{ $request->fullUrl() }}
================================================ FILE: resources/views/components/routing-parameter.blade.php ================================================ @props(['routeParameters'])

Routing parameters

@if ($routeParameters)
@else @endif
================================================ FILE: resources/views/components/routing.blade.php ================================================ @props(['routing'])

Routing

@forelse ($routing as $key => $value)
{{ $key }}
{{ $value }}
@empty @endforelse
================================================ FILE: resources/views/components/section-container.blade.php ================================================
merge(['class' => "w-full max-w-7xl mx-auto p-4 sm:p-14 border-x border-dashed border-neutral-300 dark:border-white/[9%]"]) }} > {{ $slot }}
================================================ FILE: resources/views/components/separator.blade.php ================================================
merge(['class' => "h-0 w-full relative"]) }}>
================================================ FILE: resources/views/components/syntax-highlight.blade.php ================================================ @props([ 'code', 'language', 'editor' => false, 'startingLine' => 1, 'highlightedLine' => null, 'truncate' => false, ]) @php $fallback = $truncate ? '
' : '
';

    if ($editor) {
        $lines = explode("\n", $code);

        foreach ($lines as $index => $line) {
            $lineNumber = $startingLine + $index;
            $highlight = $highlightedLine === $index;
            $lineClass = implode(' ', [
                'block px-4 py-1 h-7 even:bg-white odd:bg-white/2 even:dark:bg-white/2 odd:dark:bg-white/4',
                $highlight ? 'bg-rose-200! dark:bg-rose-900!' : '',
            ]);
            $lineNumberClass = implode(' ', [
                'mr-6 text-neutral-500! dark:text-neutral-600!',
                $highlight ? 'dark:text-white!' : '',
            ]);

            $fallback .= '';
            $fallback .= '' . $lineNumber . '';
            $fallback .= htmlspecialchars($line);
            $fallback .= '';
        }

    } else {
        $fallback .= htmlspecialchars($code);
    }

    $fallback .= '
'; @endphp
{!! $fallback !!}
================================================ FILE: resources/views/components/topbar.blade.php ================================================ @props(['title', 'markdown'])
{{ $title }}
================================================ FILE: resources/views/components/trace.blade.php ================================================ @props(['exception'])

Exception trace

@foreach ($exception->frameGroups() as $group) @if ($group['is_vendor']) @else @foreach ($group['frames'] as $frame) @endforeach @endif @endforeach
================================================ FILE: resources/views/components/vendor-frame.blade.php ================================================ @props(['frame'])
@if($frame->previous())
@else Entrypoint @endif
================================================ FILE: resources/views/components/vendor-frames.blade.php ================================================ @props(['frames']) @use('Illuminate\Support\Str')
{{ count($frames)}} vendor {{ Str::plural('frame', count($frames))}}
@foreach ($frames as $frame)
@endforeach
================================================ FILE: resources/views/view-exception.blade.php ================================================ @use('BezhanSalleh\FilamentExceptions\FilamentExceptions') @php $exception = $this->getStoredException(); $exceptionAsMarkdown = $exception->markdown(); $record = $exception->record(); @endphp {!! FilamentExceptions::renderCss() !!} @if (filled($record->cookies))

Cookies

@foreach ($record->cookies as $key => $value)
{{ $key }}
{{ is_array($value) ? json_encode($value) : $value }}
@endforeach
@endif
Recorded: {{ $record->created_at->format('M d, Y H:i:s') }}
@if ($record->ip)
{{ $record->ip }}
@endif
{!! FilamentExceptions::renderJs() !!}
================================================ FILE: src/Commands/InstallCommand.php ================================================ Filament Exceptions` plugin for filament.'; public function handle(): int { $this->call('vendor:publish', [ '--tag' => 'filament-exceptions-migrations', '--force' => $this->option('force'), ]); $this->call('migrate', [ '--force' => $this->option('force'), ]); $this->components->info('Filament Exceptions🐞... installed!'); $this->askToStar(); return self::SUCCESS; } protected function askToStar(): void { if ($this->option('no-interaction')) { return; } if (confirm( label: 'All done! Would you like to show some love by starring the `Filament Exceptions` repo on GitHub?', default: true, )) { if (PHP_OS_FAMILY === 'Darwin') { exec('open https://github.com/bezhanSalleh/filament-exceptions'); } if (PHP_OS_FAMILY === 'Linux') { exec('xdg-open https://github.com/bezhanSalleh/filament-exceptions'); } if (PHP_OS_FAMILY === 'Windows') { exec('start https://github.com/bezhanSalleh/filament-exceptions'); } $this->components->info('Thank you!'); } } } ================================================ FILE: src/Concerns/HasLabels.php ================================================ modelLabel = $label; return $this; } public function pluralModelLabel(string | Closure | null $label): static { $this->pluralModelLabel = $label; return $this; } public function titleCaseModelLabel(bool | Closure $condition = true): static { $this->hasTitleCaseModelLabel = $condition; return $this; } public function globallySearchable(bool | Closure $condition = true): static { $this->isGloballySearchable = $condition; return $this; } public function getModelLabel(): string { return $this->evaluate($this->modelLabel ?? __('filament-exceptions::filament-exceptions.labels.model')); } public function getPluralModelLabel(): string { return $this->evaluate($this->pluralModelLabel ?? __('filament-exceptions::filament-exceptions.labels.model_plural')); } public function hasTitleCaseModelLabel(): bool { return $this->evaluate($this->hasTitleCaseModelLabel); } public function canGloballySearch(): bool { return $this->evaluate($this->isGloballySearchable); } } ================================================ FILE: src/Concerns/HasModelPruneInterval.php ================================================ modelPruneInterval = $interval; return $this; } public function getModelPruneInterval(): Carbon { return $this->modelPruneInterval ?? now()->subWeek(); } } ================================================ FILE: src/Concerns/HasNavigation.php ================================================ | Closure | null */ protected string | Closure | null $cluster = null; protected bool | Closure $shouldEnableNavigationBadge = false; protected string | array | Closure | null $navigationBadgeColor = null; protected string | Closure | null $navigationGroup = null; protected string | Closure | null $navigationParentItem = null; protected string | Closure | null $navigationIcon = null; protected string | Closure | null $activeNavigationIcon = null; protected string | Closure | null $navigationLabel = null; protected int | Closure | null $navigationSort = null; protected string | Closure | null $slug = null; protected bool | Closure $shouldRegisterNavigation = true; protected SubNavigationPosition | Closure $subNavigationPosition = SubNavigationPosition::Start; // Setters public function cluster(string | Closure | null $cluster): static { $this->cluster = $cluster; return $this; } public function navigationBadge(bool | Closure $condition = true): static { $this->shouldEnableNavigationBadge = $condition; return $this; } public function navigationBadgeColor(string | array | Closure $color): static { $this->navigationBadgeColor = $color; return $this; } public function navigationGroup(string | Closure | null $group): static { $this->navigationGroup = $group; return $this; } public function navigationParentItem(string | Closure | null $item): static { $this->navigationParentItem = $item; return $this; } public function navigationIcon(string | Closure | null $icon): static { $this->navigationIcon = $icon; return $this; } public function activeNavigationIcon(string | Closure | null $icon): static { $this->activeNavigationIcon = $icon; return $this; } public function navigationLabel(string | Closure | null $label): static { $this->navigationLabel = $label; return $this; } public function navigationSort(int | Closure | null $sort): static { $this->navigationSort = $sort; return $this; } public function slug(string | Closure | null $slug): static { $this->slug = $slug; return $this; } public function registerNavigation(bool | Closure $shouldRegisterNavigation): static { $this->shouldRegisterNavigation = $shouldRegisterNavigation; return $this; } public function subNavigationPosition(SubNavigationPosition | Closure $subNavigationPosition): static { $this->subNavigationPosition = $subNavigationPosition; return $this; } // Getters public function getSubNavigationPosition(): SubNavigationPosition { return $this->evaluate($this->subNavigationPosition); } public function shouldEnableNavigationBadge(): bool { return $this->evaluate($this->shouldEnableNavigationBadge); } public function getNavigationBadgeColor(): string | array | null { return $this->evaluate($this->navigationBadgeColor); } public function getNavigationGroup(): ?string { return $this->evaluate($this->navigationGroup ?? __('filament-exceptions::filament-exceptions.labels.navigation_group')); } public function getNavigationParentItem(): ?string { return $this->evaluate($this->navigationParentItem); } public function getNavigationIcon(): string { return $this->evaluate($this->navigationIcon ?? 'heroicon-o-bug-ant'); } public function getActiveNavigationIcon(): ?string { return $this->evaluate($this->activeNavigationIcon ?? 'heroicon-s-bug-ant'); } public function getNavigationLabel(): string { return (string) $this->evaluate($this->navigationLabel ?? __('filament-exceptions::filament-exceptions.labels.navigation')); } public function getNavigationSort(): ?int { return $this->evaluate($this->navigationSort); } public function shouldRegisterNavigation(): bool { return $this->evaluate($this->shouldRegisterNavigation); } public function getSlug(): ?string { return $this->evaluate($this->slug); } /** * @return class-string | null */ public function getCluster(): ?string { return $this->evaluate($this->cluster); } } ================================================ FILE: src/Concerns/HasTenantScope.php ================================================ isScopedToTenant = $condition; return $this; } public function tenantOwnershipRelationshipName(string | Closure | null $ownershipRelationshipName): static { $this->tenantOwnershipRelationshipName = $ownershipRelationshipName; return $this; } public function tenantRelationshipName(string | Closure | null $relationshipName): static { $this->tenantRelationshipName = $relationshipName; return $this; } public function isScopedToTenant(): bool { return $this->evaluate($this->isScopedToTenant); } public function getTenantRelationshipName(): ?string { return $this->evaluate($this->tenantRelationshipName); } public function getTenantOwnershipRelationshipName(): ?string { return $this->evaluate($this->tenantOwnershipRelationshipName); } } ================================================ FILE: src/Facades/FilamentExceptions.php ================================================ |null */ protected static ?string $cluster = null; protected static bool $isRecording = true; protected static ?Closure $shouldRecordCallback = null; public static function report(Throwable $throwable): void { try { if (! static::isRecording()) { return; } if (static::$shouldRecordCallback instanceof Closure && ! call_user_func(static::$shouldRecordCallback, $throwable)) { return; } if (! static::shouldCapture($throwable)) { return; } // Ensure Listener is bound (Laravel only binds it when APP_DEBUG=true) if (! app()->bound(Listener::class)) { app()->singleton(Listener::class); } // Use Laravel's exact same process as Renderer::render() $flattenException = app(BladeMapper::class)->map( app(HtmlErrorRenderer::class)->render($throwable) ); $exception = new Exception( $flattenException, request(), app(Listener::class), base_path() ); // Generate markdown if the view exists (Laravel 12+), otherwise null // @phpstan-ignore method.impossibleType (view exists at runtime in Laravel 12+) $markdown = view()->exists('laravel-exceptions-renderer::markdown') ? view('laravel-exceptions-renderer::markdown', ['exception' => $exception])->render() : null; // Store all the data // Note: $exception->code() only exists in Laravel 12+, use $flattenException->getCode() for compatibility static::store([ 'type' => $exception->class(), 'code' => (string) $flattenException->getCode(), 'message' => $exception->message(), 'file' => $flattenException->getFile(), 'line' => $flattenException->getLine(), 'trace' => $flattenException->getTrace(), 'method' => request()->getMethod(), 'path' => request()->path(), 'ip' => request()->ip(), 'query' => $exception->applicationQueries(), 'headers' => $exception->requestHeaders(), 'body' => request()->all() ?: null, 'cookies' => request()->cookies->all() ?: null, 'route_context' => $exception->applicationRouteContext() ?: null, 'route_parameters' => request()->route()?->parameters() ?: null, 'markdown' => $markdown, ]); } catch (Throwable) { // Silent fail } } public static function shouldCapture(Throwable $exception): bool { $file = $exception->getFile(); $message = $exception->getMessage(); if (blank($file) || ! str($file)->endsWith('.php')) { return false; } if (str_contains($file, ")'d code")) { return false; } if (blank($message)) { return false; } if (str_contains($message, '__VSCODE_LARAVEL_')) { return false; } return $exception->getLine() > 0; } public static function store(array $data): bool { try { $model = static::getModel(); if (! $model || ! class_exists($model)) { return false; } $model::create($data); return true; } catch (Throwable) { return false; } } public static function cluster(string $cluster): void { static::$cluster = $cluster; } public static function getCluster(): ?string { return static::$cluster; } public static function getModel(): ?string { return static::$model; } public static function model(string $model): void { static::$model = $model; } public static function stopRecording(): void { static::$isRecording = false; } public static function startRecording(): void { static::$isRecording = true; } public static function isRecording(): bool { return static::$isRecording; } public static function recordUsing(?Closure $callback): void { static::$shouldRecordCallback = $callback; } public static function renderCss(): string { $css = file_get_contents(__DIR__ . '/../resources/dist/styles.css'); // Override Tailwind colors to use Filament's theme variables // This must come after the main CSS to win in the cascade $colorOverrides = ' :root { --color-neutral-50: var(--gray-50); --color-neutral-100: var(--gray-100); --color-neutral-200: var(--gray-200); --color-neutral-300: var(--gray-300); --color-neutral-400: var(--gray-400); --color-neutral-500: var(--gray-500); --color-neutral-600: var(--gray-600); --color-neutral-700: var(--gray-700); --color-neutral-800: var(--gray-800); --color-neutral-900: var(--gray-900); --color-neutral-950: var(--gray-950); --color-rose-50: var(--danger-50); --color-rose-100: var(--danger-100); --color-rose-200: var(--danger-200); --color-rose-500: var(--danger-500); --color-rose-600: var(--danger-600); --color-rose-900: var(--danger-900); --color-rose-950: var(--danger-950); --color-blue-50: var(--primary-50); --color-blue-100: var(--primary-100); --color-blue-300: var(--primary-300); --color-blue-500: var(--primary-500); --color-blue-600: var(--primary-600); --color-blue-700: var(--primary-700); --color-blue-800: var(--primary-800); --color-blue-900: var(--primary-900); --color-blue-950: var(--primary-950); --color-emerald-200: var(--success-200); --color-emerald-400: var(--success-400); --color-emerald-500: var(--success-500); --color-emerald-600: var(--success-600); --color-emerald-900: var(--success-900); --color-amber-200: var(--warning-200); --color-amber-300: var(--warning-300); --color-amber-500: var(--warning-500); --color-amber-600: var(--warning-600); --color-amber-800: var(--warning-800); --color-amber-900: var(--warning-900); --color-amber-950: var(--warning-950); } '; return ''; } /** * Get the exception renderer's JavaScript content. */ public static function renderJs(): string { return ''; } } ================================================ FILE: src/FilamentExceptionsPlugin.php ================================================ getId()); return $plugin; } public function getId(): string { return 'filament-exceptions'; } public function register(Panel $panel): void { if (is_null(FilamentExceptions::getModel())) { FilamentExceptions::model(Exception::class); } $panel ->resources([ ExceptionResource::class, ]); } public function boot(Panel $panel): void {} } ================================================ FILE: src/FilamentExceptionsServiceProvider.php ================================================ name('filament-exceptions') ->hasViews() ->hasTranslations() ->hasMigration('create_filament_exceptions_table') ->hasCommand(InstallCommand::class); } public function packageBooted(): void { parent::packageBooted(); $this->callAfterResolving(Schedule::class, function (Schedule $schedule): void { $schedule->command('model:prune', [ '--model' => [FilamentExceptions::getModel()], ])->daily(); }); $this->callAfterResolving(ExceptionHandler::class, function (ExceptionHandler $handler): void { $handler->reportable(function (Throwable $e) use ($handler): void { if ($handler->shouldReport($e)) { FilamentExceptions::report($e); } }); }); } } ================================================ FILE: src/Models/Exception.php ================================================ > $trace * @property string $method * @property string $path * @property string|null $ip * @property array> $query * @property array|string> $headers * @property array|null $body * @property array|null $cookies * @property array|null $route_context * @property array|null $route_parameters * @property string|null $markdown * @property Carbon $created_at * @property Carbon $updated_at */ class Exception extends Model { use MassPrunable; protected $table = 'filament_exceptions_table'; protected $guarded = []; public function prunable(): Builder { return static::whereDate('created_at', '<=', FilamentExceptionsPlugin::get()->getModelPruneInterval()); } protected function casts(): array { return [ 'line' => 'integer', 'trace' => 'array', 'headers' => 'array', 'cookies' => 'array', 'body' => 'array', 'query' => 'array', 'route_context' => 'array', 'route_parameters' => 'array', 'markdown' => 'string', ]; } } ================================================ FILE: src/Resources/ExceptionResource/Pages/ListExceptions.php ================================================ storedException instanceof StoredException) { return $this->storedException; } try { $this->storedException = new StoredException($this->record); } catch (Throwable) { // If something goes wrong, create with a fresh record $this->storedException = new StoredException($this->record); } return $this->storedException; } public function getHeading(): string | Htmlable | null { return null; // $this->heading ?? $this->getTitle(); } public function getHeader(): ?View { return null; } public function getMaxContentWidth(): Width | string | null { return Width::SixExtraLarge; } public function getPageClasses(): array { return [ '[&_.fi-page-header-main-ctn]:gap-y-0! [&_.fi-page-header-main-ctn]:py-1', ]; } public function getBreadcrumbs(): array { return []; } } ================================================ FILE: src/Resources/ExceptionResource.php ================================================ getModelLabel(); } public static function getPluralModelLabel(): string { return static::getPlugin()->getPluralModelLabel(); } public static function getActiveNavigationIcon(): ?string { return static::getPlugin()->getActiveNavigationIcon(); } public static function getNavigationGroup(): ?string { return static::getPlugin()->getNavigationGroup() ?? static::getTitleCasePluralModelLabel(); } public static function getNavigationLabel(): string { return static::getPlugin()->getNavigationLabel(); } public static function getNavigationIcon(): string { return static::getPlugin()->getNavigationIcon(); } public static function getSlug(?Panel $panel = null): string { return static::getPlugin()->getSlug() ?? parent::getSlug(); } public static function getNavigationBadge(): ?string { return static::getPlugin()->shouldEnableNavigationBadge() ? (string) static::getEloquentQuery()->count() : null; } public static function shouldRegisterNavigation(): bool { return filled(FilamentExceptions::getCluster()) || static::getPlugin()->shouldRegisterNavigation(); } public static function getNavigationSort(): ?int { return static::getPlugin()->getNavigationSort(); } public static function isScopedToTenant(): bool { return static::getPlugin()->isScopedToTenant(); } public static function getTenantRelationshipName(): string { return static::getPlugin()->getTenantRelationshipName() ?? parent::getTenantRelationshipName(); } public static function getTenantOwnershipRelationshipName(): string { return static::getPlugin()->getTenantOwnershipRelationshipName() ?? parent::getTenantOwnershipRelationshipName(); } public static function canGloballySearch(): bool { return static::getPlugin()->canGloballySearch() && parent::canGloballySearch(); } public static function table(Table $table): Table { return $table ->modifyQueryUsing(fn (Builder $query) => $query->select('id', 'path', 'method', 'type', 'code', 'ip', 'created_at')) ->columns([ TextColumn::make('method') ->label(fn (): string => __('filament-exceptions::filament-exceptions.columns.method')) ->badge() ->colors([ 'gray', 'success' => fn ($state): bool => $state === 'GET', 'primary' => fn ($state): bool => $state === 'POST', 'warning' => fn ($state): bool => in_array($state, ['PUT', 'PATCH'], true), 'danger' => fn ($state): bool => $state === 'DELETE', 'gray' => fn ($state): bool => $state === 'OPTIONS', ]) ->searchable() ->sortable(), TextColumn::make('path') ->label(fn (): string => __('filament-exceptions::filament-exceptions.columns.path')) ->searchable(), TextColumn::make('type') ->label(fn (): string => __('filament-exceptions::filament-exceptions.columns.type')) ->sortable() ->searchable(), TextColumn::make('code') ->label(fn (): string => __('filament-exceptions::filament-exceptions.columns.code')) ->searchable() ->sortable() ->toggleable(isToggledHiddenByDefault: false), TextColumn::make('ip') ->label(fn (): string => __('filament-exceptions::filament-exceptions.columns.ip')) ->badge() ->extraAttributes(['class' => 'font-mono']) ->sortable() ->searchable() ->toggleable(isToggledHiddenByDefault: false), TextColumn::make('created_at') ->label(fn (): string => __('filament-exceptions::filament-exceptions.columns.occurred_at')) ->sortable() ->searchable() ->dateTime() ->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ // ]) ->recordActions([ ViewAction::make() ->color('primary'), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ]), ]) ->defaultSort('created_at', 'desc'); } public static function getPages(): array { return [ 'index' => ListExceptions::route('/'), 'view' => ViewException::route('/{record}'), ]; } } ================================================ FILE: src/StoredException.php ================================================ */ protected array $classMap = []; public function __construct( protected ExceptionModel $record ) { $this->request = $this->createRequest(); $this->buildClassMap(); } /** * Get the exception title (status text). */ public function title(): string { return 'Internal Server Error'; } /** * Get the exception message. */ public function message(): string { return $this->record->message ?? ''; } /** * Get the exception class name. */ public function class(): string { return class_basename($this->record->type ?? 'Exception'); } /** * Get the full exception class name. */ public function fullClass(): string { return $this->record->type ?? 'Exception'; } /** * Get the exception code. */ public function code(): int | string { return $this->record->code ?? 0; } /** * Get the HTTP status code. */ public function httpStatusCode(): int { return 500; } /** * Get the exception's frames. * * @return Collection */ public function frames(): Collection { return once(function (): Collection { $trace = $this->decodeTrace(); $basePath = base_path(); $frames = []; $previousFrame = null; // Process frames in reverse order like Laravel does foreach (array_reverse($trace) as $frameData) { $frame = new StoredFrame( $this->classMap, [ 'file' => $frameData['file'] ?? '', 'line' => $frameData['line'] ?? 0, 'class' => $frameData['class'] ?? null, 'type' => $frameData['type'] ?? null, 'function' => $frameData['function'] ?? null, 'args' => $frameData['args'] ?? [], ], $basePath, $previousFrame ); $frames[] = $frame; $previousFrame = $frame; } // Reverse back to original order $frames = array_reverse($frames); // Mark first non-vendor frame as main foreach ($frames as $frame) { if (! $frame->isFromVendor()) { $frame->markAsMain(); break; } } return new Collection($frames); }); } /** * Get the exception's frames grouped by vendor status. * * @return array}> */ public function frameGroups(): array { $groups = []; foreach ($this->frames() as $frame) { $isVendor = $frame->isFromVendor(); if ($groups === [] || $groups[array_key_last($groups)]['is_vendor'] !== $isVendor) { $groups[] = [ 'is_vendor' => $isVendor, 'frames' => [], ]; } $groups[array_key_last($groups)]['frames'][] = $frame; } return $groups; } /** * Get the exception's request instance. */ public function request(): Request { return $this->request; } /** * Get the request's headers. * * @return array */ public function requestHeaders(): array { $headers = $this->record->headers ?? []; return array_map( fn (array | string $header): string => is_array($header) ? implode(', ', $header) : $header, $headers ); } /** * Get the request's body. */ public function requestBody(): ?string { $body = $this->record->body; if (empty($body)) { return null; } if (is_string($body)) { return $body; } return json_encode($body, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) ?: null; } /** * Get the application's route context. * * @return array */ public function applicationRouteContext(): array { return $this->record->route_context ?? []; } /** * Get the application's route parameters context. */ public function applicationRouteParametersContext(): ?string { $parameters = $this->record->route_parameters; if (empty($parameters)) { return null; } return json_encode($parameters, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) ?: null; } /** * Get the application's SQL queries. * * @return array */ public function applicationQueries(): array { $queries = $this->record->query ?? []; return array_map(fn (array $query): array => [ 'connectionName' => $query['connectionName'] ?? $query['connection'] ?? 'default', 'time' => $query['time'] ?? 0, 'sql' => $query['sql'] ?? '', ], $queries); } /** * Get the stored record. */ public function record(): ExceptionModel { return $this->record; } /** * Get the stored markdown, or generate it if not available (Laravel 11). */ public function markdown(): string { return $this->record->markdown ?: $this->generateMarkdown(); } /** * Generate markdown from stored exception data. * This is used for Laravel 11 which doesn't have the markdown view. */ protected function generateMarkdown(): string { $lines = []; // Header $lines[] = sprintf('# %s - %s', $this->class(), $this->title()); $lines[] = ''; $lines[] = $this->message(); $lines[] = ''; $lines[] = 'PHP ' . PHP_VERSION; $lines[] = 'Laravel ' . app()->version(); $lines[] = $this->request()->httpHost(); $lines[] = ''; // Stack Trace $lines[] = '## Stack Trace'; $lines[] = ''; foreach ($this->frames() as $index => $frame) { $lines[] = sprintf('%d - %s:%d', $index, $frame->file(), $frame->line()); } $lines[] = ''; // Request $lines[] = '## Request'; $lines[] = ''; $path = $this->request()->path(); $lines[] = $this->request()->method() . ' ' . (str_starts_with($path, '/') ? $path : '/' . $path); $lines[] = ''; // Headers $lines[] = '## Headers'; $lines[] = ''; $headers = $this->requestHeaders(); if ($headers === []) { $lines[] = 'No header data available.'; } else { foreach ($headers as $key => $value) { $lines[] = sprintf('* **%s**: %s', $key, $value); } } $lines[] = ''; // Route Context $lines[] = '## Route Context'; $lines[] = ''; $routeContext = $this->applicationRouteContext(); if ($routeContext === []) { $lines[] = 'No routing data available.'; } else { foreach ($routeContext as $name => $value) { $lines[] = sprintf('%s: %s', $name, $value); } } $lines[] = ''; // Route Parameters $lines[] = '## Route Parameters'; $lines[] = ''; $routeParams = $this->applicationRouteParametersContext(); $lines[] = in_array($routeParams, [null, '', '0'], true) ? 'No route parameter data available.' : $routeParams; $lines[] = ''; // Database Queries $lines[] = '## Database Queries'; $lines[] = ''; $queries = $this->applicationQueries(); if ($queries === []) { $lines[] = 'No database queries detected.'; } else { foreach ($queries as $query) { $lines[] = sprintf('* %s - %s (%s ms)', $query['connectionName'], $query['sql'], $query['time']); } } return implode("\n", $lines); } /** * Create a mock Request object from stored data. */ protected function createRequest(): Request { $request = Request::create( uri: '/' . ltrim($this->record->path ?? '', '/'), method: $this->record->method ?? 'GET', server: [ 'REMOTE_ADDR' => $this->record->ip ?? '127.0.0.1', ] ); // Set headers from stored data if ($headers = $this->record->headers) { foreach ($headers as $key => $value) { $request->headers->set($key, $value); } } return $request; } /** * Decode trace from JSON string or return array as-is. * * @return array> */ protected function decodeTrace(): array { $trace = $this->record->trace; if (is_array($trace)) { return $trace; } if (is_string($trace)) { $decoded = json_decode($trace, true); if (is_array($decoded) && json_last_error() === JSON_ERROR_NONE) { return $decoded; } } return []; } /** * Build class map from stored trace data. */ protected function buildClassMap(): void { // First, try to get from Composer's autoloader $loaders = ClassLoader::getRegisteredLoaders(); if (! empty($loaders)) { $this->classMap = array_map(fn (string $path): string => (string) realpath($path), array_values($loaders)[0]->getClassMap()); } // Also add classes from our stored trace (in case files moved) foreach ($this->decodeTrace() as $frameData) { if (isset($frameData['class'], $frameData['file'])) { $realPath = @realpath($frameData['file']); if ($realPath && ! isset($this->classMap[$frameData['class']])) { $this->classMap[$frameData['class']] = $realPath; } } } } } ================================================ FILE: src/StoredFrame.php ================================================ $classMap * @param array{file: string, line: int, class?: string|null, type?: string|null, function?: string|null, args?: array} $frame */ public function __construct( protected array $classMap, protected array $frame, protected string $basePath, protected ?StoredFrame $previous = null ) {} /** * Get the frame's source / origin. */ public function source(): string { $class = $this->class(); return $class ?? $this->file(); } /** * Get the frame's editor link. */ public function editorHref(): string { return $this->resolveSourceHref($this->frame['file'] ?? '', $this->line()); } /** * Get the frame's class, if any. */ public function class(): ?string { $file = $this->frame['file'] ?? ''; if (empty($file)) { return null; } $class = array_search((string) realpath($file), $this->classMap, true); return $class === false ? null : $class; } /** * Get the frame's file. */ public function file(): string { $file = $this->frame['file'] ?? null; return match (true) { ! isset($file) => '[internal function]', ! is_string($file) => '[unknown file]', default => str_replace($this->basePath . DIRECTORY_SEPARATOR, '', $file), }; } /** * Get the frame's line number. */ public function line(): int { $file = $this->frame['file'] ?? ''; $line = $this->frame['line'] ?? 0; if (! is_file($file) || ! is_readable($file)) { return 0; } $maxLines = count(file($file) ?: []); return $line > $maxLines ? 1 : $line; } /** * Get the frame's function operator. */ public function operator(): string { return $this->frame['type'] ?? ''; } /** * Get the frame's function or method. */ public function callable(): string { return match (true) { ! empty($this->frame['function']) => $this->frame['function'], default => 'throw', }; } /** * Get the frame's arguments. * * @return array */ public function args(): array { if (! isset($this->frame['args']) || ! is_array($this->frame['args']) || $this->frame['args'] === []) { return []; } return array_map(function ($argument): string { if (! is_array($argument) || count($argument) < 2) { return 'unknown'; } [$key, $value] = $argument; return match ($key) { 'object' => sprintf('%s(%s)', $key, $value), default => (string) $key, }; }, $this->frame['args']); } /** * Get the frame's code snippet. */ public function snippet(): string { $file = $this->frame['file'] ?? ''; if (! is_file($file) || ! is_readable($file)) { return ''; } $contents = file($file) ?: []; $start = max($this->line() - 6, 0); $length = 8 * 2 + 1; return implode('', array_slice($contents, $start, $length)); } /** * Determine if the frame is from the vendor directory. */ public function isFromVendor(): bool { $file = $this->frame['file'] ?? ''; return ! str_starts_with($file, $this->basePath) || str_starts_with($file, $this->basePath . DIRECTORY_SEPARATOR . 'vendor'); } /** * Get the previous frame. */ public function previous(): ?StoredFrame { return $this->previous; } /** * Mark this frame as the main frame. */ public function markAsMain(): void { $this->isMain = true; } /** * Determine if this is the main frame. */ public function isMain(): bool { return $this->isMain; } } ================================================ FILE: tests/AdminPanelProvider.php ================================================ default() ->id('admin') ->login() ->registration() ->passwordReset() ->emailVerification() ->pages([ Pages\Dashboard::class, ]) ->resources([ ]) ->middleware([ EncryptCookies::class, AddQueuedCookiesToResponse::class, StartSession::class, AuthenticateSession::class, ShareErrorsFromSession::class, VerifyCsrfToken::class, SubstituteBindings::class, DisableBladeIconComponents::class, DispatchServingFilamentEvent::class, ]) ->authMiddleware([ Authenticate::class, ]); } } ================================================ FILE: tests/ArchTest.php ================================================ expect(['dd', 'dump', 'ray']) ->each->not->toBeUsed(); ================================================ FILE: tests/ExampleTest.php ================================================ toBeTrue(); }); ================================================ FILE: tests/Pest.php ================================================ in(__DIR__); ================================================ FILE: tests/TestCase.php ================================================ loadMigrationsFrom(__DIR__ . '/../database/migrations'); } public function getEnvironmentSetUp($app) { $app['config']->set('database.default', 'testing'); $app['config']->set('view.paths', [ ...$app['config']->get('view.paths'), __DIR__ . '/../resources/views', ]); /* $migration = include __DIR__.'/../database/migrations/create_filament-exceptions_table.php.stub'; $migration->up(); */ } } ================================================ FILE: vite.config.js ================================================ import { defineConfig } from 'vite'; import tailwindcss from '@tailwindcss/vite'; export default defineConfig({ plugins: [tailwindcss()], build: { outDir: 'resources/dist', rollupOptions: { input: ['resources/css/styles.css', 'resources/js/scripts.js'], output: { assetFileNames: '[name][extname]', entryFileNames: '[name].js', }, }, }, });